2013-08-19 38 views
0

嗨,這個問題仍然困擾着我。它看起來很簡單。 我在lib和舞臺上獲得了movieclip,它有一個鏈接類「Box.as」和另一個鏈接到「Circle.as」的舞臺。 我想從Circle.as訪問Box.as的動畫片段,反之亦然。如何訪問鏈接類的動態/靜態movieclip?

public class Circle extends MovieClip 
{ 
    private var _circle:MovieClip; 
    private var _box:Box; 


    public function Circle() 
    { 
     _circle = new MovieClip(); 

     if (stage) onStage(); 
     else this.addEventListener(Event.ADDED_TO_STAGE,onStage); 


    } 
    private function onStage(e:Event = null) 
    { 
     _circle = stage.getChildByName("blue_circle") as MovieClip; 
     this.addEventListener(Event.ENTER_FRAME,hitTarget); 

    } 

    private function hitTarget(e:Event):void 
    { 

     if (_circle.hitTestObject(_box.mc)) //test if 2 movieclips are colliding 
     { // _box.mc is just created the same as _circle 
      trace("hi"); 
     } 

    } 

此代碼不工作。而且我想使用一個即使動畫片段不在舞臺上(即沒有實例名稱)也可以訪問的場景。
希望你能幫助我。謝謝。

回答

0

看起來你真的很接近!你忘了創建一個新的類Box實例。所以,你的public function Circle()內只需添加

_box = new Box(); 

讓我知道是否可行。如果沒有,有可能是壞了你的鏈接...

你的整個代碼看起來像這樣

public class Circle extends MovieClip 
{ 
    private var _circle:MovieClip; 
    private var _box:Box; 


    public function Circle() 
    { 
     _box = new Box(); 
     _circle = new MovieClip(); 

     if (stage) onStage(); 
     else this.addEventListener(Event.ADDED_TO_STAGE,onStage); 


    } 
    private function onStage(e:Event = null) 
    { 
     _circle = stage.getChildByName("blue_circle") as MovieClip; 
     this.addEventListener(Event.ENTER_FRAME,hitTarget); 

    } 

    private function hitTarget(e:Event):void 
    { 

     if (_circle.hitTestObject(_box.mc)) //test if 2 movieclips are colliding 
     { // _box.mc is just created the same as _circle 
      trace("hi"); 
     } 

    } 
+0

哦!我很抱歉,但我忘了在我的帖子中添加。但它是在真正的代碼,仍然沒有工作。我也嘗試跟蹤_box.mc或_circle,但它跟蹤爲空。 –

+0

那麼如果你鏈接正確,我肯定這就是你所需要的,我已經做了一百萬次。仔細檢查您的課程是否位於正確的包裝中,鏈接變量時正確使用了capitlize,並且還使用正確的名稱保存了您的文件。也許還會發布你遇到的錯誤。是說不能訪問空對象? – spaderdabomb

+0

也有可能你沒有導入某些東西......確保你已經做出了所有正確的導入.......並且還有一件事要嘗試。嘗試addChild(_box),然後運行你的代碼,看看是否至少有效。 – spaderdabomb