【发布时间】:2018-05-17 08:19:26
【问题描述】:
这是我的第一个问题,但我最近一直遇到这个问题,需要一些帮助。
我正在为周末编写一个小型 Android 游戏,但我无法让我的飞船的子弹击中敌人并同时消失...
我会给你们简要介绍一下我的代码:
stage.addEventListener(Event.ENTER_FRAME, Update);
LeftButton.addEventListener(TouchEvent.TOUCH_OVER, LBOn);
LeftButton.addEventListener(TouchEvent.TOUCH_BEGIN, LBTouch);
LeftButton.addEventListener(TouchEvent.TOUCH_OUT, LBOff);
LeftButton.addEventListener(TouchEvent.TOUCH_END, LBRelease);
RightButton.addEventListener(TouchEvent.TOUCH_OVER, RBOn);
RightButton.addEventListener(TouchEvent.TOUCH_BEGIN, RBTouch);
RightButton.addEventListener(TouchEvent.TOUCH_OUT, RBOff);
RightButton.addEventListener(TouchEvent.TOUCH_END, RBRelease);
BA.addEventListener(TouchEvent.TOUCH_BEGIN, Shoot);
这是我舞台的事件监听器块。当前所有的 EventListeners 都在这个小部分中,非常简单,它们可以正常工作,但最后一个事件调用了函数 Shoot,这就是事情变得棘手的地方......
function Shoot(TouchEvent) {
SpawnBullet();
};
好的,很简单。只是一个调用另一个函数来生成我的子弹的函数,在我看来并没有太大的危害......
这就是我试图让代码运行的方式:
function SpawnBullet() {
var Bullet:Bullet1 = new Bullet1();
stage.addChild(Bullet);
Bullet.x = Player.x;
Bullet.y = Player.y - (Player.height / 2);
Bullet.addEventListener(Event.ENTER_FRAME, BulletUpdate);
function BulletUpdate(Event) {
Bullet.y -= 20;
if(Bullet.y <= 100) {
Bullet.removeEventListener(Event.ENTER_FRAME, BulletUpdate);
stage.removeChild(Bullet);
Bullet = null;
};
};
};
当我运行游戏时出现此错误:
ReferenceError: Error #1069: Property ENTER_FRAME not found on flash.events.Event and there is no default value.
at Function/Shooter_fla:MainTimeline/SpawnBullet/Shooter_fla:BulletUpdate()[Shooter_fla.MainTimeline::frame1:41]
我并没有试图伪造我的技能,我认为我不了解添加和删除 childs 的工作原理,并且因为我讨厌只是在网上搜索一种方法来做某事而不学习某事的工作方式,所以我来这里寻求帮助。提前感谢您的帮助!
【问题讨论】:
标签: android actionscript-3 actionscript removechild addchild