as3 error:通过静态类型flash.display:DisplayObject的引用访问可能未定义的属性

时间:2014-09-25 13:16:20

标签: actionscript-3 flash

我有这个as3项目,并且在时间轴的第一帧中我尝试加载名为" menu"的swf电影。在这个加载的电影中,我有一个名为" button1"的按钮的实例,我想在这个" button1"中添加一个新的EventListener。我的代码在这里:

var theLoader:Loader = new Loader();
var address:URLRequest = new URLRequest("menu.swf");
theLoader.load(address);

theLoader.contentLoaderInfo.addEventListener(Event.COMPLETE , swfDidLoad);

    function swfDidLoad(evt:Event){
        if(theLoader.content){
            addChild(theLoader);                
            var button:SimpleButton = theLoader.content.button1;
            button.addEventListener(MouseEvent.CLICK, handler1);                
        }
    }

    function handler1 (event:MouseEvent):void
    {       
             removeChild(theLoader);
             gotoAndStop(10);
    };

但是我得到了这个unfind属性错误。我该怎么办?我这样做了吗?

1 个答案:

答案 0 :(得分:2)

您收到该错误的原因是因为您尝试访问button1 theLoader.content这是一个非动态DisplayObject(这意味着只有明确定义的属性/方法是有效)。您必须先将其转换为MovieClip 动态)。

您应该将该行更改为:

var button:SimpleButton = MovieClip(theLoader.content).button1;