如果数字为零,如何进入下一个场景

Posted

技术标签:

【中文标题】如果数字为零,如何进入下一个场景【英文标题】:How to go to next scene if a number equals zero 【发布时间】:2013-11-01 21:45:19 【问题描述】:

我正在创建游戏,其中当一个物体滚过另一个物体时,该物体会消失,而当它滚过另一个物体时,它会从舞台上计算剩余物体数量的物体中取出 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");

【问题讨论】:

【参考方案1】:

您需要关闭您的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");
    

【讨论】:

但是我将如何创建那个监听器呢? (对不起我的菜鸟,但我最近才开始使用 actionscript) 监听器是一个为事件注册的函数。因此,当您编写 someObject.addEventListener(eventName, fooFunction) 时,fooFunction 是您的听众,并且已为您的活动注册(非常简单)。 但我得到了错误:通过静态类型 Number 的引用调用可能未定义的方法 addEventListener。 您不能将Number 注册到侦听器,因为事件不是从它们生成的,并且(作为一个类)Number 没有名为addEventListener 的方法。如果你想注册Event.ENTER_FRAME,那是一个舞台活动,所以你需要在舞台上注册如下:this.addEventListener(Event.ENTER_FRAME, handleCollision4)。当然,你可以用其他方式编写它,因为this 只是一个指向当前命名空间的本地指针;用Stageroot 替换它也是有效的。我不知道您使用的是什么对象 An,因为您从未在示例中声明它。

以上是关于如果数字为零,如何进入下一个场景的主要内容,如果未能解决你的问题,请参考以下文章

如何在 R 中创建一个长度为零的数字向量

从行中减去一个数字,直到数字结束为零

我的 SSIS 包中的源没有选择前面为零的浮点值

AVX:“如果不为零,则为 1”

Excel中输入数字.如果小数点后两位为零就自动不显示,如何让他显示小数点后两位,哪怕是零?

利用自定义View实现扫雷游戏