actionscript-3 - 如何使用 as3 类访问舞台上的电影剪辑?

标签 actionscript-3 actionscript flash-cs3

public class MyClass extends MovieClip {
            public function MyClass():void {
                my_mc.addEventListener(MouseEvent.CLICK, action);
            }
            private function action(e:MouseEvent):void {
                trace("cliked");
            }
        }

时间线代码
 var myClass:MyClass = new MyClass();
    addChild(myClass);

我无法访问 my_mc (放置在 FLA 中)影片剪辑。如何访问?

最佳答案

尝试这个:

public class MyClass extends MovieClip
{
    public function MyClass()
    {
        if (stage) init();
        else addEventListener(Event.ADDED_TO_STAGE, init);

    }// end function

    private function init(e:Event = null):void 
    {
        removeEventListener(Event.ADDED_TO_STAGE, init);

        var myMc:MovieClip = stage.getChildByName("my_mc") as MovieClip;
        // var myMc:MovieClip = parent.getChildByName("my_mc") as MovieClip;

        myMc.addEventListener(MouseEvent.CLICK, onMyMcClick)

    }// end function

    private function onMyMcClick(e:MouseEvent)
    {
        trace("clicked");

    }// end function

}// end class

如果这不起作用(我认为不会),那是因为您的 my_mc显示对象不是舞台的子对象,而是 MainTimeline 实例的子对象.如果是这样,那么只需注释掉上面代码中的以下语句:
var myMc:MovieClip = stage.getChildByName("my_mc") as MovieClip;

并取消注释上述代码中的以下语句:
// var myMc:MovieClip = parent.getChildByName("my_mc") as MovieClip;

如果我的假设是正确的,my_mcmyClass显示对象共享同一个父对象。

关于actionscript-3 - 如何使用 as3 类访问舞台上的电影剪辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7280203/

相关文章:

ios - 如何在 AS3 中使用 iOS 相机?

actionscript-3 - 如何动态访问对象属性?

apache-flex - 理解 Actionscript 中的 OOP

actionscript-3 - 如何在 ActionScript 3 中获取用户的屏幕分辨率?

actionscript-3 - AS3 物体初始位置进入椭圆轨道

flash - 如何在 Flash CC 中通过 Actionscript 显示 AdMob 广告(iOS 和 Android)

actionscript-3 - 如何在 Flash AS3 中解析日期

flash - Adobe Flash 创建 Flash 影片文件时出错 目标目录不存在

actionscript-3 - as3中的定时器初始值