2

在此处输入图像描述嗨,我对 Flash 开发相对较新,我有一个关于保存用户输入的快速问题。我有一个迷宫场景,用户在其中导航一个角色,直到遇到另一个对象,当角色击中该对象时,会打开一个新场景,提示用户选择问题的解决方案。一旦用户点击正确的答案,就会出现一个框,说返回迷宫,但是当点击并返回迷宫时,角色会从原来的位置开始,我希望场景从中断的地方继续,即角色是在它与物体相撞的地方,物体已经消失,角色可以恢复到相同的路线上。感谢您阅读本文,我希望它有意义,并且有人为我提供了解决方案。

编辑:首先,我要感谢各位明星的代表点,其次,我知道在 flash 中使用场景是严重的 cr*p 练习和过时的,但它是我多年前学习的方式,并且被视为 Flash 本身将过时很快我并不是真的想学习使用精灵或框架的另一种方法,我只是想要一种修复这种方式,如果 poss 谢谢你的回答!

编辑:一旦黑色方块与它碰撞,希望红色矩形从场景中移除。这样做时,它还会将您带到下一帧。这是我的代码。

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

2 回答 2

2

我建议你忘记Scenes!它们很旧,有缺陷,会带来大量代码问题,而且通常是一种糟糕的做法!!所以如果你只是在学习AS3,不要学习Scenes!!使用MovieClipsSprites代替。只需根据需要添加和删除它们!

编辑:您的编辑;)

并且认为Flash本身很快就会过时

那只是纯粹的错误和广泛的错误信息。它只是有一个新的目的,比如 MultiPlattform 游戏开发。但那是一个完全不同的讨论。

您可以通过保存 x,y 坐标然后恢复它们来解决这个问题。但我向你保证,随着你的发展,你会遇到更多的问题/错误!

就像保存的积分和时间一样。当您将玩家放在对象上(最后一个位置)时,您会再次触发问题场景吗?保存答案,等等...更改为 DisplayObjects 最终会节省您的时间。只是说;)

编辑2:

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

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: 好的,我刚刚有一个屠夫。现在都在一个框架上。我会更喜欢课程,但这会让你感到困惑。

要添加新问题,您只需复制库中的问题影片剪辑并更改文本,保持实例名称相同,然后代码将按原样工作! 下载

于 2013-02-27T13:21:58.147 回答
0

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

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

于 2013-02-27T13:40:17.030 回答