我正在创建一个游戏,当一个物体滚过另一个物体时,物体就会消失,而当它发生时,就会从舞台上的物品中取出一个物品来计算物品剩余的数量;但是,我想要它,当它等于零时,它会进入一个新的场景。到目前为止,这是我的代码:
var nObjects:Number = 5;
An.addEventListener( Event.ENTER_FRAME, handleCollision4)
function handleCollision4( e:Event ):void
{
if(An.hitTestObject(Octo)){
An.addEventListener(MouseEvent.MOUSE_UP, onStopDrag4);
function onStopDrag4(e:MouseEvent):void {
e.target.StopDrag;
if(An.hitTestObject(Octo)){
removeChild(MovieClip(Octo));
nObjects--;
trace(nObjects)
myText.text = String(nObjects);
}
}
//there are five of these when they are all deleted nObjects does equal zero
if (nObjects==0);
{
gotoAndStop(1, "Scene 3");
}
答案 0 :(得分:0)
您需要关闭handleCollision4
及其if
声明。为了帮助保持清晰(发生封装),请记住始终正确缩进代码,因为这样可以让其他人(和您)更容易阅读并发现语法错误。
在onStopDrag4
中,您看起来像StopDrag
的函数调用。不要忘记你的括号。
您对if (nObjects == 0) {
的测试超出了您的onStopDrag4
侦听器,这意味着它只会在初始文档读取期间运行一次;你希望它在监听器内部,以便在每次nObject
递减后运行。此外,请勿在条件后添加分号。
格式正确,它应该如下所示:
var nObjects:Number = 5;
An.addEventListener(Event.ENTER_FRAME, handleCollision4)
function handleCollision4(e:Event):void {
if (An.hitTestObject(Octo)) {
An.addEventListener(MouseEvent.MOUSE_UP, onStopDrag4);
}
}
function onStopDrag4(e:MouseEvent):void {
e.target.StopDrag();
if (An.hitTestObject(Octo)) {
removeChild(MovieClip(Octo));
nObjects--;
trace(nObjects)
myText.text = String(nObjects);
}
//there are five of these when they are all deleted nObjects does equal zero
if (nObjects == 0) {
gotoAndStop(1, "Scene 3");
}
}