![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Всем доброго времени суток!
Возникла одна трудность. Видел в Интернете исходники таймеров обратного отсчета, на которых можно засечь N часов-минут-секунд, вроде бы все понятно. А как можно прикрутить такой таймер к SharedObject, чтобы после закрытия флешки отсчет продолжался? Возможно для этого надо записать текущую дату-время и дату-время окончания таймера и сверять их при открытии флешки? |
|
|||||
|
наверное недоформулировал.
ну короче говоря, примерно так. я хочу засечь, допустим, шесть часов с какого-то момента, и чтобы после закрытия флешки таймер продолжал работать, то есть, если открыть флешку через четыре часа, то он показывал бы, что два осталось. Получается, записать в Shared Object начало и конец отсчета и отследить, идет отсчет или нет. |
|
|||||
|
вопрос в том, что не знаю, как на практике прикрутить код от обычного таймера к SO.
опыта мало в этом. |
|
|||||
|
Цитата:
var tf:TextField; var curTime:Number; var so:SharedObject; var totTime:Number=6; tf = this.createTextField("tf", 0, 0, 0, 200, 80); so = SharedObject.getLocal("countdown", "/"); if (so.data.elapsedTime) { // процесс уже запущен, стартуем счет startCount(); } else { //нет данных, создаем и ждем отмашки на старт (любой клик) so.data.elapsedTime = 0; tf.text = "кликните где-нибудь для старта"; this.onMouseDown = startCount; } function startCount() { curTime = getTimer(); this.onEnterFrame = this_onEnterFrame; this.onMouseDown = null; } function this_onEnterFrame() { // добавляем время счетчику var time:Number = getTimer(); so.data.elapsedTime += time-curTime; curTime = time; // показываем сколько прошло\осталось var d:Date = new Date(); d.setTime(so.data.elapsedTime); tf.text = "истрачено "+d.getUTCHours()+":"+d.getUTCMinutes()+":"+d.getUTCSeconds(); d.setTime(totTime*60*60*1e3-so.data.elapsedTime); tf.text += "\nосталось "+d.getUTCHours()+":"+d.getUTCMinutes()+":"+d.getUTCSeconds(); } упс только это я почему-то написал для случая, когда счет при закрытии флешки останавливается, а при старте возобновляется снова если надо, чтоб продолжался, то будет еще проще.., только до меня не доходит практический смысл такого счетчика, поэтому пусть так пока (если что переделать не сложно) |
|
|||||
|
Икскьюзми, магистр (с), а использование ЮТС минут-секунд действительно имеет какой-то практический смысл, или это просто решение задачи в общем виде?
|
|
|||||
|
А что та прикручивать-то? Записать в СО две цифирки - время старта и время длительности отсчета.
При запуске считываем, вычитаем и видим сколько ост. function loadSettings( file, defaults ){ var answer = new Object() var newset = SharedObject.getLocal( file ) if ( newset.data.dat != undefined ) { trace(file+" ### Settings Loaded. OK") answer = newset.data.dat } else { trace(file+" ### No Settings") saveSettings( file, defaults ) answer = defaults } return answer } function saveSettings( file, obj ){ trace("### Save settings: "+file) var saveset = SharedObject.getLocal( file ) saveset.data.dat = obj saveset.flush() } var timerData = loadSettings("my_timer", {start:new Date(), finish:new Date()+10000}) Для нескоькоих таймеров сохраняем не единичный объект, а массив объектов. http://vk.com/TIMERS |
|
|||||
|
Что-то я не совсем понял, куда они выводятся, цифры-то
Переменная timerData выдает значение [object Object] |
|
|||||
|
timerData.start
timerData.finish |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|