2013-05-14 39 views
0

我似乎無法找到這個問題的答案。我不能讓下面的工作:訪問由同一個類中的另一個函數添加的Movieclip?

public class Callbattle extends MovieClip 
    { 
import flash.display.MovieClip; 
import flash.display.Stage; 
import flash.display.InteractiveObject; 
import flash.events.MouseEvent; 
import global.Globalvar; 

    public var battlegraphics:Array = new Array(); 
    public function Battle() 
    { 



     var battlewindow:MovieClip = new Battlewindow() as MovieClip; 
     battlegraphics.push(addChild(battlewindow)); 
     battlewindow.x = 4; 
     battlewindow.y = 248; 

     var attackbutton:MovieClip = new Battlebutton() as MovieClip; 
     battlegraphics.push(addChild(attackbutton)); 
     attackbutton.x = 192; 
     attackbutton.y = 255; 

     attackbutton.addEventListener(MouseEvent.CLICK, Attackclicked); 


    } 

    public function Attackclicked(event:MouseEvent):void{ 
     battlegraphics[attackbutton].y = 248; 
    } 

}

,我發現了錯誤

battlegraphics [attackbutton] .Y = 248;

試圖加入動畫片段到數組我用同樣的結果做這樣的這種方法之前:

public class Callbattle extends MovieClip 
     { 
    import flash.display.MovieClip; 
    import flash.display.Stage; 
    import flash.display.InteractiveObject; 
    import flash.events.MouseEvent; 
    import global.Globalvar; 
public function Battle() 
     { 



      var battlewindow:MovieClip = new Battlewindow() as MovieClip; 
      this.addChild(battlewindow); 
      battlewindow.x = 4; 
      battlewindow.y = 248; 

      var attackbutton:MovieClip = new Battlebutton() as MovieClip; 
      this.addChild(attackbutton); 
      attackbutton.x = 192; 
      attackbutton.y = 255; 

      attackbutton.addEventListener(MouseEvent.CLICK, Attackclicked); 

      while (Globalvar.battle == true){ 

       if (hero1turn == true){ 

       } 
      } 
     } 

     public function Attackclicked(event:MouseEvent):void{ 
      attackbutton.y = 248; 
     } 
    } 

我基本上只是希望能夠從另一個函數訪問一個影片剪輯。

感謝你們滿口,任何幫助將是驚人的 馬克

回答

1

訣竅是,如果你正在引用數組的內容,您使用int類型的指標,或String類型的某些情況下,當你的attackbutton在該函數中未定義。解決方案非常簡單:在Battle()函數之外聲明attackbutton,並從啓動attackButton中刪除var

public class Battle extends MovieClip { 
    private var attackbutton:MovieClip; 
    private var battlewindow:MovieClip; 
    public function Battle() { 
     attackbutton=new Battlebutton(); 
     battlewindow=new Battlewindow(); 
     ... 
    } 
    public function attackClicked(event:MouseEvent):void { 
     attackbutton.y=248; // this is now valid 
    } 
} 
+0

啊優秀的工作,我現在也明白,非常感謝您的幫助 – 2013-05-14 13:19:29

1

battlegraphics [attackbutton] .Y = 248;

數組應取數字而不是您指定的變量名稱。 所以它會是

battlegraphics [1] .y = 248;

相關問題