在根目录重写 addChild() ?

发布于 2024-11-11 04:00:38 字数 66 浏览 3 评论 0原文

我见过在影片剪辑中覆盖 addChild 的方法,但是您可以在最上层的根级别执行此操作吗?就像在主时间线上覆盖它一样。

I've seen methods for overriding addChild inside of movieclips, but can you do it at the upper-most root level? As in, overriding it on the main timeline.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

怪我太投入 2024-11-18 04:00:38

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

Here's what you need to do. First create a document class for your FLA. In this case, I've called it 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));
        }
    }
}

Then you need to set the document class in your FLA (look at the Property panel with no stage objects selected).

美胚控场 2024-11-18 04:00:38

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

You could create your own Document class, and override addChild in it.

心凉怎暖 2024-11-18 04:00:38

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

You can override inside of any class that inherits the addChild method. Example:

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;
        }
    }
} 

Source:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文