他们不是真正的敌人,他们只是你射击的气球。然而,当使用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.
}