2014-09-25 20 views
0

我有這個as3項目,並且在時間軸的一幀中,我嘗試加載一個名爲「menu」的swf電影,並在這個加載電影我有一個名爲「button1」的按鈕的實例,我想添加一個新的EventListener到這個「button1」。我的代碼是在這裏:as3錯誤:通過帶有靜態類型的引用訪問Possiblealy undefind屬性flash.display:DisplayObject

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

但我得到這個undefind屬性錯誤。我該怎麼辦?我做對了嗎?

回答

2

你得到這個錯誤的原因是因爲你試圖訪問button1theLoader.content這是一種非動態DisplayObject(這意味着只有明確定義的屬性/方法是有效的)。您必須先將它投射到MovieClip(其中動態)。

你應該改變該行:

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

相關問題