离开并重新访问一个场景,保持任何用户输入改变相同。可以吗?

时间:2013-02-27 13:06:55

标签: actionscript-3 flash memory input

enter image description here嗨我相对较新的flash开发,我有一个关于保存用户输入的快速问题。我有一个迷宫场景,用户导航角色周围直到面对另一个对象,当角色击中对象时,打开一个新场景,提示用户选择问题的解决方案。一旦用户点击了正确的答案,就会出现一个框,表示返回迷宫,但是当点击并返回到迷宫时,角色会以其原始位置重新开始,我希望场景从其停止的位置恢复,即角色在与物体碰撞的位置,物体消失,角色可以在同一路线上恢复。 感谢您给我一个阅读,我希望它有意义,有些人有一个解决方案。 我确实有一些很好的图像可以更好地解释它,但显然我需要10个声望点来上传它们。

编辑:首先我要感谢各位明星的回复点,其次我知道在flash中使用场景是严重的实践和过时的但是它是我多年前学到的那种方式并被视为Flash本身很快就会过时我真的不想学习使用精灵或框架的另一种方法,如果可能的话,我有点想要修复这个问题谢谢你的回答!

编辑:一旦黑色方块与红色方块发生碰撞,就要将红色矩形从场景中移除。这样做也会带你到下一帧。这是我的代码。

 addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);
 function fl_EnterFrameHandler (event:Event):void
    {
        if (player.hitTestObject(Risk))
        {
            removeEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);
            removeChild(Risk);
            nextFrame();                
        }
    }

2 个答案:

答案 0 :(得分:2)

我建议你忘掉Scenes!它们陈旧,有缺陷,带来大量的代码问题,通常都是糟糕的做法!因此,如果您只是在学习AS3,请不要学习Scenes! 请改用MovieClipsSprites。只需根据需要添加和删除它们即可!

编辑: 要编辑;)

  

并且看作Flash本身很快就会过时

这简直就是错误和广泛的错误信息。它只是像MultiPlattform Game Development这样的新目标。但那是一场完全不同的讨论。

您可以通过保存x,y坐标然后恢复它们来解决此问题。但是我向你保证,当你走进去的时候,你会遇到更多的问题/错误!

喜欢保存的积分和时间。当你将玩家放在物体上时(上一个位置),你会再次试探问题吗?保存答案,依此类推...... 更改为DisplayObjects将最终节省您的时间。只是说;)

EDIT2:

评论中的代码应如下所示:

function fl_EnterFrameHandler (event:Event):void
        {
            if (player.hitTestObject(Risk))
            {
                removeEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);//remove to prevent errors if it fires again and there is no Object to hitTest
                removeChild(Risk);// do what needs to be done on this frame
                nextFrame();// and then move to the next                
            }
        }

按照正确的对话并让每个人的生活更容易阅读,这看起来像这样!

function fl_EnterFrameHandler (event:Event):void
        {
            if (player.hitTestObject(risk))
            {
                removeEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);//remove to prevent errors if it fires again and there is no Onject to hitTest
                removeChild (risk);
                nextFrame ();

            }
        }

我现在很容易混淆你,只使用最上面的一个;)

<强> EDIT3: 好的,我只是有一个屠夫。它现在都在一个框架上。我本来会喜欢上课,但这只会让你感到困惑。

要添加新的问题,您只需在库中更新问题MovieClip并更改文本,保留实例名称相同,然后代码将按原样运行! DOWLOAD

答案 1 :(得分:0)

当然可以。您可以将字符属性(例如当前位置)存储在变量中。然后在返回游戏时,您将使用此变量来设置角色的起始位置。

我同意场景不是你应该采取的理想路线。从长远来看,可能会阅读一本好的AS3书籍可以节省数小时/数天/周。