如何重置变量Flash游戏CS6 AS3

时间:2013-01-18 01:27:41

标签: actionscript-3 flash flash-cs6

我正在编写一个Flash游戏,其中球击中了一个影片剪辑对象,这会将用户带到一个新的场景。

这很好但是当我回到游戏场景时,球的移动速度提高了两倍。

返回游戏时如何/在何处重置变量。 请参阅下文,了解我目前如何设置变量

var XSpeed:Number = 9;
var YSpeed:Number = 9;

非常感谢任何帮助。感谢。

编辑*的 * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **

好的,所以我觉得我这个问题非常糟糕,这是我的相关代码:

var XSpeed:Number = 9; //X Speed of the Ball
var YSpeed:Number = 9; //Y Speed of the Ball


function beginCode():void{

mcPaddle.addEventListener(Event.ENTER_FRAME, movePaddle);

mcBall.addEventListener(Event.ENTER_FRAME, moveBall);

mcBall.addEventListener(Event.ENTER_FRAME, changeFrame);
}
然后在结束时调用

beginCode()。 如前所述,我认为问题是事件侦听器已经存在,并且每次用户返回页面时都会再次调用它。 我试图添加一个if语句来检查(参见下面的评论),但这没有用......

非常感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:0)

嗯,这完全取决于你的游戏是如何编写的,以及你希望它如何运作。

对于您的特定问题,只需执行此操作when the ball hits a movie clip

XSpeed = 9;
YSpeed = 9;

答案 1 :(得分:0)

这听起来像this question。问题是当游戏重新启动时再次添加事件监听器,使得游戏循环频繁发生两次(并且所有事情都发生了两倍)。

你需要在游戏结束时删除监听器,或者添加一个检查以确保它只添加一次。