我试图通过使用一个计时器来制作一个评分系统,以便它能够在玩家继续前进的基础上继续计时器/得分继续上升,我得到了这个代码。
var nCount:Number = 0;
var myScore:Timer = new Timer(10, nCount);
score_txt.text = nCount.toString();
myScore.start();
myScore.addEventListener(TimerEvent.TIMER, countdown);
function countdown(e:TimerEvent):void{
nCount++;
score_txt.text = nCount.toString();
}
然而,例如说玩家崩溃我希望游戏记住得分,然后将其显示在另一个框架上,我在屏幕上有一个游戏,这样就可以向玩家显示最终得分,这是我拥有的部分不知道怎么做。任何帮助,将不胜感激。 非常感谢
答案 0 :(得分:0)
您无法修改“其他框架”上的对象。您只能修改当前帧上的对象。帧简单地表示当时间线到达那些帧时被烘焙到SWF中以实现的状态;您无法在运行时更改SWF帧数据。您只能在播放器构建这些帧后更改生成的对象。
您可以做的是将得分存储在变量中(可在所有帧中使用),只需在这些帧上设置正确的文本对象即可。
对于您的代码,您只需要在SWF加载时(或者您想要重置它)将nCount
设置为0,并立即在它存在的帧上设置score_txt
。例如,您可以这样做:
// Don't initialize a value, that would overwrite
// it every time this frame is visited
var nCount:Number;
// Only the first time, when the value is NaN, set the score to 0
if(isNaN(nCount)){
nCount = 0;
}
// Immediately show the current score text
score_txt.text = nCount.toString();
// The rest stays the same
var myScore:Timer = new Timer(10, nCount);
score_txt.text = nCount.toString();
myScore.start();
myScore.addEventListener(TimerEvent.TIMER, countdown);
function countdown(e:TimerEvent):void{
nCount++;
score_txt.text = nCount.toString();
}