杀死游戏敌人ActionScript 3.0



他们不是真正的敌人,他们只是你射击的气球。然而,当使用addChild添加它们时,当我点击(射击)它们时,它们都没有播放"死亡"动画。这是我的代码。如果它看起来杂乱无章,请原谅我,我刚刚开始使用ActionScript,没有任何先前的OOP经验。

一切工作正常,除了点击孩子似乎没有注册到所有的对象添加到舞台。我没有外部类,所有实例名都是正确的。我在链接中称气球为"受害者"。

import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.MouseEvent;

Mouse.hide();
cursor_mc.startDrag(true);

stage.addEventListener(MouseEvent.MOUSE_DOWN, onClick);
shotHandler.addEventListener(MouseEvent.MOUSE_DOWN, boxShot);
function boxShot(evt:MouseEvent):void
{
    enemyBox.gotoAndStop(2);
}


    function onClick(event:MouseEvent):void
    {
        cursor_mc.play();
        var myBullet:MovieClip = new black_mc();
        myBullet.x = mouseX; myBullet.y = mouseY;
        stage.addChildAt(myBullet , 0);
    }

    var myTimer:Timer = new Timer(1200, 300);
    myTimer.addEventListener(TimerEvent.TIMER, createEnemies);
    myTimer.start();
    function createEnemies(e:Event):void
    {

        var circle:MovieClip = new victim();
        circle.x = Math.random() * stage.stageWidth;
        circle.y = Math.random() * stage.stageHeight;
        addChildAt(circle , 2);

    }

我看了你的代码,我没有看到任何添加mousellistener在你的"受害者"对象。无论如何,如果你需要在点击对象时对它做些什么,你可以这样写:

function createEnemies(e:Event):void //your enemy creation function
{

    var circle:MovieClip = new victim();
    circle.addEventListener(MouseEvent.CLICK, onObjClick); // here is your click listener
    circle.x = Math.random() * stage.stageWidth;
    circle.y = Math.random() * stage.stageHeight;
    addChildAt(circle , 2);

}
private function onObjClick(event:MouseEvent):void {
    var target:MovieClip = event.currentTarget as victim;
    target.gotoAndPlay("destroyAnim");
    //target.goToDeath();  uncomment this and comment previous line if you already have a destroy function into your "victim" class.
}

相关内容

  • 没有找到相关文章