【发布时间】:2013-04-29 02:39:33
【问题描述】:
在动作脚本 3 中添加孩子时遇到了一些问题。我目前正在构建 Space Invaders 游戏,并且正在编写将小行星添加到舞台的函数。
我的第一个问题是每次我尝试添加新的小行星时都会添加所有以前的小行星。
我的第二个问题是添加 hitTestOject 函数时。当宇宙飞船撞击小行星物体时,它会抛出一个错误并且它什么都不做。
这是我收到的 hitTestObject 错误:
TypeError:错误 #1034:类型强制失败:无法转换“ast_0” 到 flash.display.DisplayObject。在 spaceranger_fla::MainTimeline/addAstroid() 在 flash.utils::Timer/_timerDispatch() 在 flash.utils::Timer/tick()
这是我的代码。我使用计时器,所以每 5000 毫秒添加一次小行星:
// Add astoid
var astTimer:Timer = new Timer(5000);
astTimer.addEventListener(TimerEvent.TIMER, addAstroid);
var i:Number = 0;
function addAstroid (e:TimerEvent):void{
var ast = new astroid();
ast.name = "ast_"+i;
ast.y = Math.random()*stage.stageHeight;
ast.x = 565;
addChild(ast);
trace(i);
if(ship.hitTestObject(ast.name)){
gotoAndStop("2");
}
i = i+1;
}
astTimer.start();
我们将不胜感激一些建议、建议和答案:)
更新
我对循环错误进行了排序。老小行星不再出现! :D
非常感谢,
彼得·斯图尔特
【问题讨论】:
标签: actionscript-3 flash object hittest addchild