如何在另一帧的动态文本字段显示中进行分数?

时间:2015-07-01 09:25:49

标签: actionscript-3 timer

我试图通过使用一个计时器来制作一个评分系统,以便它能够在玩家继续前进的基础上继续计时器/得分继续上升,我得到了这个代码。

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

然而,例如说玩家崩溃我希望游戏记住得分,然后将其显示在另一个框架上,我在屏幕上有一个游戏,这样就可以向玩家显示最终得分,这是我拥有的部分不知道怎么做。任何帮助,将不胜感激。 非常感谢

1 个答案:

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