Просмотр полной версии : Почему останавливается секундомер при свёртывания окна?
sidorenkova
31.05.2013, 15:15
Здравствуйте!
Я заметила особенность одну, у меня есть ролик с отображением секундомера. В общем, он отсчитывает время, но когда я сворачиваю окно или перехожу на другую вкладку в браузере... секундомер останавливается, даже через пару минут я возвращаюсь в ролик... секундомер продолжает делать отсчёт
Почему это происходит и как это можно исправить?
caseyryan
31.05.2013, 15:19
это фишка флеш плеера. Фреймрейт падает до 4 кадров в секунду (если мне память не изменяет) при потере фокуса вкладки с плеером. Чтобы весь бразуер не тормозил. Исправить нельзя, это зашито в сам плеер.
Final Hope
31.05.2013, 15:19
Если флеш плеер находится в неактивном состоянии, то фпс падает до 4 кадров. Чтобы секундомер работал правильно, лучше использовать класс Date.
sidorenkova
31.05.2013, 16:24
Если флеш плеер находится в неактивном состоянии, то фпс падает до 4 кадров. Чтобы секундомер работал правильно, лучше использовать класс Date.
Date ??? А как использовать этот класс? Если не сложно, можно об этой реализации где-то прочитать?
То есть как примерно реализовать date чтобы был отсчёт без сбоя таймера при неактивности окна браузера
Final Hope
31.05.2013, 17:21
Вот тут можно много всего почитать: http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/index.html#!Date.html
Например, вот такой пример:import flash.text.TextField;
import flash.events.Event;
var timerTextField:TextField = new TextField();
var startDate:Date = new Date();
var currentDate:Date;
var deltaTime:Number;
timerTextField.width = 200;
this.addChild(timerTextField);
stage.addEventListener(Event.ENTER_FRAME, updateTimerHandler);
//----------------------------------------------------------
// Event handlers
//----------------------------------------------------------
function updateTimerHandler(event:Event):void
{
currentDate = new Date();
deltaTime = currentDate.getTime() - startDate.getTime()
currentDate.setTime(deltaTime);
timerTextField.text = "С момента запуска прошло: " +
currentDate.getUTCHours().toString() + ":" +
currentDate.getUTCMinutes().toString() + ":" +
currentDate.getUTCSeconds().toString();
}
sidorenkova
31.05.2013, 17:44
Вот тут можно много всего почитать: http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/index.html#!Date.html
Например, вот такой пример:import flash.text.TextField;
import flash.events.Event;
var timerTextField:TextField = new TextField();
var startDate:Date = new Date();
var currentDate:Date;
var deltaTime:Number;
timerTextField.width = 200;
this.addChild(timerTextField);
stage.addEventListener(Event.ENTER_FRAME, updateTimerHandler);
//----------------------------------------------------------
// Event handlers
//----------------------------------------------------------
function updateTimerHandler(event:Event):void
{
currentDate = new Date();
deltaTime = currentDate.getTime() - startDate.getTime()
currentDate.setTime(deltaTime);
timerTextField.text = "С момента запуска прошло: " +
currentDate.getUTCHours().toString() + ":" +
currentDate.getUTCMinutes().toString() + ":" +
currentDate.getUTCSeconds().toString();
}
Огромное спасибо!!! Вы - настоящий друг!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.