2015-07-01 102 views
0

我试图通过使用定时器来制作一个评分系统,以便它能够在玩家继续前进的基础上工作,计时器/分数不断上升,并且我得到了与该代码一起工作的基础。如何在另一个框架上的动态文本框中显示分数?

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

只是使用score_txt.text = nCount.toString();其中score_txt将是该帧中的新文本字段。 – harilalkm

回答

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(); 
} 
相关问题