0

こんにちは私は、フラッシュAS3のブリックブレーカーゲームでボールがボールに当たったときに、このブリックをフェードアウトさせようとしています。これがコードです。現時点では、それを消すだけのremovechild関数があります。代わりに、フェードアウトさせる方法を知りたいです。また、ボールがレンガに当たったときに追加したいブレイクサウンドがあり、これもどのように追加するのでしょうか?

編集:子行を削除した後、Var&Playを使用してサウンドを追加することができました

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

}

4

2 に答える 2

0

トゥイーン 1 つだけのトゥイーン パックは必要ありません。

AS3 自体が提供する Tween クラスを使用できます。これを試して :

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

ノート:

  • mc はムービークリップ (またはブリック) です。

  • このコードは、トゥイーンの完了後にムービークリップをステージから削除します。

  • ボールがレンガに触れるとすぐに音を鳴らし、その後にこのコードを挿入します。

  • 最後の 3 つのパラメーター (false、0、true) は、モーション終了リスナーがガベージ コレクションされるように設定します。

于 2013-02-26T02:45:54.197 に答える
0

最初に変数 hit:Boolean を作成し、ヒットしたときにそれを 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);
        }
    }     
于 2013-02-25T22:28:02.380 に答える