1

好吧,我正在开发一款射击游戏,我必须点击敌人才能让两个计数器计算我得到的命中次数。在这种情况下,敌人是鬼魂,我尝试在他们被射击时制作某种动画,以便在我点击它们后动画替换它们。

但是我似乎无法让它们再次出现在同一个位置,这是使用Flash CS5的形状和绘图工具制作的非常简单的绘图。

我在这种情况下用于拍摄部分的代码是这样的:

function disparar (event:MouseEvent):void{
    contar +=1;
    disparos.text = contar.toString();

    var destino1:Boolean = this.mira.hitTestObject(this.FRojo)

    if (destino1 == true){
        cuenta +=1;
        aciertos.text = cuenta.toString();
        this.FRojo.visible = false;
        colorante.color = 0xFF0000;
        this.bang.transform.colorTransform = colorante;
        this.bang.x = this.FRojo.x;
        this.bang.y = this.FRojo.y;
        this.bang.scaleX = this.FRojo.scaleX;
        this.bang.scaleY = this.FRojo.scaleY;
        this.bang.play();
        this.FRojo.visible = true;
    }

事实上你可以在这里看到整个文件,这很简单,但我似乎无法让影片剪辑消失并重新出现,或者每次我击中一个鬼时让后面的动画重新出现。谁能帮我解决这个问题?我真的很感激帮助。

4

1 回答 1

0

您通过设置隐藏影片剪辑this.FRojo.visible = false;,然后几乎在之后将其设置回 true,因此它永远不会隐藏。

尝试更换this.FRojo.visible = true;

setTimeout(function(){FRojo.visible = true;}, 1000);

这将使它在 1 秒(1000 毫秒)后重新出现。

所以删除this并确保每一个都是 FRojo、FAzul 和 FMorado。

如果你使用像 greensock 这样的补间库,你可以做一些很酷的淡入淡出,而不仅仅是重新出现。

编辑

您的BANG影片剪辑中有另一个错误。在第 10 帧上替换

this.bang.x = 50;
this.bang.y = 10;
this.bang.scaleX = 1;
this.bang.scaleY = 1;

this.x = 50;
this.y = 10;
this.scaleX = 1;
this.scaleY = 1;
于 2013-06-25T22:10:10.860 回答