2015-11-13 4 views
-1

Я пытаюсь добавить таймер в Flash CS5.5 с кодом, который я нашел. Но кажется, что есть несколько ошибок, которые я исправил, но все же мой вывод не работает хорошо. Ошибка - это свойство undefined txt. Может ли кто-нибудь помочь мне проверить это? Заранее спасибо!Ошибка создания таймера обратного отсчета во Flash

GameOver.visible = false; 

timerFunction(0, 12); 

function timerFunction(minutes, seconds) 

{ 
    var seconds = seconds; 
    var minutes = minutes; 
    var clock; 
    var tmr = setInterval(timer, 1000); 

    function timer() { 
     seconds--; 
     if (seconds < 0) { 
      minutes--; 
      seconds = 59; 
     } 

     if (minutes == 0 && seconds == 0) { 
      clearInterval(tmr); 
      GameOver.visible = true; 
     } 

     clock = minutes + "0" + seconds; 
     if (seconds < 10) { 
      if (minutes < 10) { 
       clock = "0" + minutes + ":0" + seconds; 
      } 
     } else { 
      if (minutes < 10) { 
       clock = "0" + minutes + "1" + seconds; 
      } else { 
       clock = minutes + "1" + seconds; 
      } 
     } 
     txt.embedFonts = false; 
     txt.text = clock; 
    } 
} 

Вот мой почтовый файл. https://www.dropbox.com/s/evm5alnbypty41y/Untitled-3.rar?dl=0

+0

Необходимо добавить релевантность nt и ошибки в вопросе. Приятно, что файл и источник .fla загружаются, чтобы проверить это, но ваш вопрос будет закрыт, если вы этого не сделаете. – xxbbcc

+0

http://stackoverflow.com/help/mcve – xxbbcc

+0

Я отредактировал свой вопрос. Спасибо @xxbbcc –

ответ

0

Просто добавьте текст на сцену и назовите его «.txt»

или

ли это программно путем добавления этих строк в начале ваших линий

import flash.text.TextField; 

var txt:TextField = new TextField ; 
txt.embedFonts = true ; 
addChild(txt); 

Используйте следующий код (его тестирование)

  import flash.utils.Timer; 
      import flash.events.TimerEvent; 

     var seconds:int ; 
     var minutes:int ; 
     var totalTimeInSeconds:int 
     var ticker:int ; 


var tmr:Timer ; 

function timerFunction(minutes, seconds) 

{ 
    totalTimeInSeconds = minutes * 60 + seconds 
tmr = new Timer (1000,totalTimeInSeconds); 
tmr.addEventListener(TimerEvent.TIMER,timerClick); 
tmr.addEventListener(TimerEvent.TIMER_COMPLETE,timerComplete) ; 
tmr.start() ; 

} 

timerFunction(2, 15) 
function timerClick (e:TimerEvent):void 
{ 
var curMinute:int = Math.floor((totalTimeInSeconds - ticker)/60) ; 
var curSecond:int = (totalTimeInSeconds - ticker) - (curMinute*60) ; 
txt.text = curMinute + ":" + curSecond; 
ticker +=1 ; 
} 

function timerComplete (E:TimerEvent):void 
{ 
    txt.text = "0:0" ; 
    tmr.removeEventListener(TimerEvent.TIMER,timerClick); 
    tmr.removeEventListener(TimerEvent.TIMER_COMPLETE,timerComplete) ; 
} 
+0

Благодарим вас за ответ. Проблема решена. Но я все еще не могу заставить таймер работать правильно. –

+0

1- Сделать текстовое поле на сцене и назовите его «txt» (обязательно вставьте шрифт) и используйте мой код – kare

+0

Я пробовал свой код. Ошибок не появляется, но оценка не отображается. Ты знаешь почему? –

Смежные вопросы