0

嗨,我正在尝试让这块砖在 Flash 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

我将如何做到这一点是首先创建一个变量 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 回答
0

只需要一个补间就不需要任何补间包。

您可以使用 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)将运动完成侦听器设置为垃圾收集。

于 2013-02-26T02:45:54.197 回答