![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2016
Сообщений: 2
|
Здравствуйте! Помогите мне, пожалуйста, настроить таймер!
Я случайно раздобыл код замечательного таймера. Если нажать на кнопку "старт", то он запускается. Если на "стоп", то останавливается. Если после того, как приложение будет закрыто, а потом его опять открыть, то на таймере остаётся сохранённым его последнее значение, на котором он был остановлен. Всё замечательно работает! Но мне нужно сделать так, чтобы таймер останавливался не по нажатию на кнопку "стоп", а автоматически после отсчёта определённого количества цифр. То есть, после определённого числа срабатываний этого отсчёта. Этот таймер начинает отсчёт с цифры 100. А как сделать так, чтобы он останавливался после 30 срабатываний на цифре 70, и чтобы эта цифра 70 осталась при новом открытии приложения? А потом опять нажал на "старт", он отсчитал бы ещё 30, и остановился на цифре 40, и чтобы эта 40 опять была бы сохранена при новом запуске приложения? Посмотрите, пожалуйста, этот код! Может поможет кто? import flash.utils.Timer; import flash.events.TimerEvent; import flash.net.SharedObject; //объект SharedObject var so:SharedObject = SharedObject.getLocal("my_game_data"); // Таймер var maxCount:uint = 100; var timer:Timer = new Timer(1000); //сюда будем класть сохранённое значение var curCount:Number = 0; var noLessVisible:Boolean = false; //таймер для сохранения данных, 100 - частота сохранения данных var saveTimer:Timer = new Timer(100); timer.addEventListener(TimerEvent.TIMER, fl_TimerHandler); saveTimer.addEventListener(TimerEvent.TIMER,saveStuff); saveTimer.start(); noLess.visible = false; if (so.data.noLessVisible != undefined) { noLessVisible = so.data.noLessVisible; } else { noLessVisible = false; } noLess.visible = noLessVisible; if (so.data.curCount != undefined) { curCount = so.data.curCount; maxCount = curCount; timerTF.text = String(maxCount); } else { timerTF.text = ""; } btnStart.addEventListener(MouseEvent.CLICK, onClick); function onClick(event:MouseEvent):void { if (timer.running) { noLess.visible = true; } else { timer.start(); btnStart.visible = false; btnStop.visible = true; noLess.visible = false; LessonnoActiv.visible = true; if (timer.currentCount == 0) { timerTF.text = String(maxCount); } } } function fl_TimerHandler(event:TimerEvent):void { timerTF.text = String(maxCount-timer.currentCount); if (timer.currentCount >= maxCount) { maxCount = 100; so.data.curCount = maxCount; timer.reset(); noLess.visible = true; btnStart.visible = true; noLessVisible = noLess.visible; so.data.noLessVisible = noLessVisible; } } function saveStuff(e:TimerEvent) { if (timer.running) { curCount = maxCount - timer.currentCount; so.data.curCount = curCount; } else { curCount = 0; } } btnStop.addEventListener(MouseEvent.CLICK, fl_ClickToHide_5); function fl_ClickToHide_5(event:MouseEvent):void { timer.stop(); btnStop.visible = false; btnStart.visible = true; } |
|
|||||
|
Регистрация: Dec 2010
Сообщений: 121
|
Я так понимаю, что нужно добавить в код вот эту строчку:
Вот только, честно говоря, не знаю куда именно. Может кто-то из более опытных флеш-мастеров подскажет? |
|
|||||
|
Код элементарный, автор не хочет сам что-то делать.
Изменения в код fl_TimerHandler. Так же не прописаны все исходы. Что делать, когда истекут последние 40? Либо программу закроют посреди контрольных точек. И т.д.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Регистрация: Dec 2010
Сообщений: 121
|
Не уверен, что автор ленится. Наверное, просто не знает. Он же пишет, что этот код раздобыл случайно. Я вот тоже, например, ещё не сильно разбираюсь. Просто столкнулся когда-то с похожей проблемой, вот и вспомнил про ту строчку, которую ему дал. А куда её вставить я и сам не знаю...
Если ты знаешь, то подскажи. Не дай человеку мучиться... |
|
|||||
|
Регистрация: Mar 2016
Сообщений: 2
|
Я вставил эту строчку вот в эту часть кода:
btnStart.addEventListener(MouseEvent.CLICK, onClick); function onClick(event:MouseEvent):void { if (timer.running) { noLess.visible = true; } else { timer.start(); timer.repeatCount = 30; btnStart.visible = false; btnStop.visible = true; noLess.visible = false; LessonnoActiv.visible = true; if (timer.currentCount == 0) { timerTF.text = String(maxCount); } } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|