Ссылка из DocumentClass мувиклипа, созданного экземпляром другого класса - PullRequest
0 голосов
/ 21 августа 2011

У меня есть этот main (класс документа) в проекте Flash:

package  {
    import flash.display.MovieClip;
    import flash.events.Event;
    public class main extends MovieClip {

        public function main() {
            var other=new Other(this);
        }
    }   
}

Это другой класс:

    package  {
        import flash.display.MovieClip;
        import Clippo;

        public class Other extends MovieClip {
            //
            public function Other(ref) {
                //
                var clippo = new Clippo();
                clippo.name="clippo";
                clippo.x=100;
                clippo.y=100;
                //1
                //ref.addChild(clippo);
                //2
                addChild(clippo);
            }
        }
}

Теперь: если я передам ссылку (ref) основного класса в Other и добавлю clippo, как вы можете видеть в первом случае, я могу сослаться на отсечение movieclip из основного (getChildAt(0) означает "clippo" из главный). Но есть ли способ использовать второй метод (без ссылки) и сделать то же самое из основного класса? Я могу увидеть clippo на сцене, когда Other создает его, но не могу понять, где clippo «живет» в DisplayList.

Ответы [ 2 ]

0 голосов
/ 22 августа 2011

Я не совсем уверен, что вы пытаетесь достичь, но:

  1. Вам нужно добавить other в список отображения, если вы хотите увидеть его или егоchildren.

    public function main()
    {
        var other:Other = new Other(this);
        addChild(other);
    }
    
  2. Вы можете использовать root вместо передачи ссылки на класс документа.(Как только он появится в списке отображения).

    root.addChild(clippo);
    

    Но имеет смысл добавить его в Other: addChild(clippo)

  3. Где вы создаете объекты DisplayObjectне влияет на список отображения, только вызов addChild.Вызов addChild в классе документа и root.addChild в Other приводит к тому же списку отображения.

0 голосов
/ 22 августа 2011

Если у вас возникли проблемы такого рода, вам может потребоваться переосмыслить свою архитектуру.

Установите некоторые правила, которым вы следуете, чтобы облегчить себе жизнь, например; Не позволяйте, чтобы дочерний элемент добавлял детей к родителям.

Я думаю, что лучший способ получить ссылку на ваш Clippo DisplayObject - это предоставить для него метод получения.

public function get clippo():Clippo
{
    return this.clippo;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...