0

我正在创建游戏,当一个对象滚过另一个对象时,该对象消失,当它消失时,从舞台上计算剩余对象数量的事物中取出 1;但是,我想要它,以便当它等于零时它会进入一个新场景。到目前为止,这是我的代码:

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");
}
4

1 回答 1

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");
    }
}
于 2013-11-01T22:02:27.663 回答