Переопределить addChild () в корне? - PullRequest
0 голосов
/ 01 июня 2011

Я видел методы переопределения addChild внутри мувиклипов, но можете ли вы сделать это на самом верхнем корневом уровне?Например, переопределяя его на основной временной шкале.

Ответы [ 3 ]

1 голос
/ 01 июня 2011

Вот что вам нужно сделать.Сначала создайте класс документа для вашего FLA.В данном случае я назвал его Main.as:

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

    public class Main extends MovieClip
    {
        public function Main()
        {
            var spr : MovieClip = new MovieClip();
            spr.graphics.beginFill(0x666666, 1);
            spr.graphics.drawRect(0, 0, 100, 100);
            addChild(spr);
        }

        override public function addChild (child : DisplayObject) : DisplayObject
        {
            // Do whatever it is you need to do here, but remember to call super.addChild() if you actually want to get anything added to the stage.
            trace ("I'm gonna add the heck out of this child: " + child);
            return (super.addChild(child));
        }
    }
}

Затем вам нужно установить класс документа в вашем FLA (посмотрите на панель свойств без выбранных объектов сцены).

0 голосов
/ 01 июня 2011

Вы можете переопределить внутри любого класса, который наследует метод addChild. Пример:

package
{
    import flash.display.MovieClip;

    public class ShadowBox extends MovieClip
    {
        private var container:MovieClip = new MovieClip();

        public function ShadowBox( s:ShadowBoxSettings )
        {
            super.addChild( container );
        }

        override public function addChild( child:DisplayObject ):DisplayObject
        {
            container.addChild( child );

            return child;
        }
    }
} 

Источник:

http://www.ultrashock.com/forum/viewthread/119614/

0 голосов
/ 01 июня 2011

Вы можете создать свой собственный класс Document и переопределить в нем addChild.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...