2013-02-25 46 views
0

嗨,我想讓這個磚淡出時,在我的flashbreaker遊戲中的閃光AS3球擊中它。這是代碼。目前只有一個removechild函數,它只是消失,我想知道如何使其淡出。另外我有一個突破的聲音,我想添加當球擊中磚,並想知道我將如何添加這個呢?使Flash父淡出並添加聲音打磚塊遊戲

編輯:我已成功通過使用remove子線

package { 
import flash.display.*; 
import flash.events.*; 

public class Brick extends MovieClip { 
    private var _root:MovieClip; 
    public function Brick(){ 
     addEventListener(Event.ADDED, beginClass); 
     addEventListener(Event.ENTER_FRAME, enterFrameEvents); 
    } 
    private function beginClass(event:Event):void{ 
     _root = MovieClip(root); 
    } 
    private function enterFrameEvents(event:Event):void{ 
     if(this.hitTestObject(_root.Ball)){ 
      _root.ballYSpeed *= -1; 
      this.parent.removeChild(this); 
      removeEventListener(Event.ENTER_FRAME, enterFrameEvents); 
     } 
    } 
} 

}

回答

0

無需對剛上任何中間人包e tween。

您可以使用AS3本身提供的Tween類。試試這個:

new Tween(mc,"alpha", 
      Strong.easeIn, 
      mc.alpha, 
      0, 
      2, 
      true).addEventListener(
      TweenEvent.MOTION_FINISH, 
      function() { removeChild(mc); }, 
      false, 0, true); 

注:

  • MC爲影片剪輯(或磚)。

  • 該代碼在補間完成後從舞臺移除動畫片段。

  • 您可以在球接觸磚塊後立即播放聲音&將 放在此代碼之後。

  • 最後三個參數(false,0,true)將運動完成偵聽器設置爲垃圾收集。

+0

非常感謝你的伎倆一個搖擺人包這工作完美 – 2013-02-27 01:43:31

0

我會怎麼做是首先創建一個變量命中後瓦爾&播放添加聲音:布爾和其設置爲true,當它被擊中和內部enterFrameEvents功能更改您的代碼是這樣的

if(!hit && this.hitTestObject(_root.Ball)){ 
     hit = true; 
     _root.ballYSpeed *= -1; 
     //this.parent.removeChild(this); 
     //removeEventListener(Event.ENTER_FRAME, enterFrameEvents); 
    } 
if(hit){ 
     this.alpha -= 0.1; //change value to preference 
     if(this.alpha <= 0){ 
      this.parent.removeChild(this); 
      removeEventListener(Event.ENTER_FRAME, enterFrameEvents); 
     } 
    }  
+0

香港專業教育學院用它撥弄了一下週圍,但不能得到它的工作,它說未定義的屬性訪問「打」 – 2013-02-26 00:54:26

+0

我剛剛下載這似乎做:) – 2013-02-26 01:24:07