他们不是真正的敌人,他们只是你射击的气球。然而,当他们添加addChild时,当我点击(拍摄)它们时,它们都没有播放他们的“死亡”动画。这是我的代码。如果它看起来没有组织,请原谅我,我刚开始没有OOP经验的ActionScript。
一切正常,除非点击儿童似乎根本没有注册添加到舞台的对象。我没有外部类,所有实例名称都是正确的。我把这个气球称为“受害者”。
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);
}
答案 0 :(得分:0)
我看了你的代码,但是我没有看到你的#34;受害者"添加了任何MouseListeners。对象。无论如何,如果你需要在点击它时对象做一些事情,你可以这样写:
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.
}