0

我已经看到了在movieclips 中覆盖addChild 的方法,但是你能在最上层的根级别做到这一点吗?如在主时间线上覆盖它。

4

3 回答 3

1

这是你需要做的。首先为您的 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 中设置文档类(查看没有选择舞台对象的属性面板)。

于 2011-05-31T22:10:28.723 回答
0

您可以在继承 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/

于 2011-05-31T22:08:52.330 回答
0

您可以创建自己的 Document 类,并在其中覆盖 addChild。

于 2011-05-31T21:53:01.987 回答