Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.01.2010, 00:57
GRAFLEKX вне форума Посмотреть профиль Найти все сообщения от GRAFLEKX
  № 1  
Ответить с цитированием
GRAFLEKX

Регистрация: Jan 2010
Сообщений: 5
По умолчанию Проблемы с таймером

Здравствуйте господа, возникли тормоза с таймером, прошу помощи.
Есть некий код:
Код:
function clickedStart(){
timing = true;
startTimer();
}
function pause() {
pauseTime = getTimer();
_root.onEnterFrame = null;
timing = false;
time_mc = true;
}
function unpause() {
if ((time_mc == true) && (timing == false)){
unpauseTime = getTimer();
pauseLength = (unpauseTime-pauseTime)+pauseLength;
_root.onEnterFrame = function (){
sed_time = getTimer() - pauseLength;
_root.count.text = time_to_string(sed_time);};
timing = true;}
}
function startTimer(){
if (timing != false){pauseLength = 0;}
start_time = getTimer();
_root.onEnterFrame = function (){
elapsed_time = getTimer()-start_time;
_root.count.text = time_to_string(elapsed_time);};
}
function time_to_string(time_to_convert){
if (timing == true){
elapsed_hours = Math.floor(time_to_convert / 3600000);
remaining = time_to_convert - elapsed_hours * 3600000;
elapsed_minutes = Math.floor(remaining / 60000);
remaining = remaining - elapsed_minutes * 60000;
elapsed_seconds = Math.floor(remaining / 1000);
remaining = remaining - elapsed_seconds * 1000;
elapsed_fs = Math.floor(remaining / 10);
if (elapsed_hours < 10){
hours = "0" + elapsed_hours.toString();
}else{
hours = elapsed_hours.toString();}
if (elapsed_minutes < 10){
minutes = "0" + elapsed_minutes.toString();
}else{
minutes = elapsed_minutes.toString();}
if (elapsed_seconds < 10){
seconds = "0" + elapsed_seconds.toString();
}else{
seconds = elapsed_seconds.toString();}
if (elapsed_fs < 10){
hundredths = "0" + elapsed_fs.toString();
}else{
hundredths = elapsed_fs.toString();}
return hours + ":" + minutes + ":" + seconds + ":" + hundredths;}
}
И кнопка:
Код:
on (press) {
clickedStart();
}
Если запустить мувик и нажать комбинацию кнопок "пауза" и "выход из паузы", то таймер работает нормально, и после выхода из паузы продолжает отсчет времени.
А если запустить мувик по кнопке (функция clickedStart();) и нажать "паузу" и "выход из паузы", то таймер показывает бред и продолжает отсчет от каких-то не понятных цифр... Прошу простить за некий каламбур.
В чем я ошибся? Я уже запутался что-то совсем... Заранее спасибо за любую помощь...

Старый 28.01.2010, 00:18
fessor вне форума Посмотреть профиль Отправить личное сообщение для fessor Найти все сообщения от fessor
  № 2  
Ответить с цитированием
fessor

Регистрация: Oct 2009
Сообщений: 101
мувик стартует сразу после загрузки, не дожидаясь когда пользователь нажмет на кнопку?
возможно при повторном запуске мувика или запуске его кнопкой не обнуляются переменные отвечающие за начало отсчета (start_time)
+выражения с точки зрения флеша абсолютно одинаковые, так зачем писать больше?
if (timing == true)
if (timing)

Старый 28.01.2010, 02:21
GRAFLEKX вне форума Посмотреть профиль Найти все сообщения от GRAFLEKX
  № 3  
Ответить с цитированием
GRAFLEKX

Регистрация: Jan 2010
Сообщений: 5
Цитата:
Сообщение от fessor Посмотреть сообщение
мувик стартует сразу после загрузки, не дожидаясь когда пользователь нажмет на кнопку?
Не совсем правильно. Чтобы было понятнее - прикрепил исходник.
Наглядный пример работы мувика:
Запускаем swf, мувик стартует автоматически и таймер ведет отсчет времени со старта. Нажимаем на кнопку "пауза", например, на 6 сек., таймер останавливается, ждем некоторое время и нажимаем кнопку "выход из паузы" - таймер продолжает отсчет с 6 сек, как и должно быть.
Теперь жмем на кнопку "рефреш", таймер обнуляется и начинает новый отсчет. Жмем на кнопку "пауза", например, на 6 сек., таймер останавливается, нажимаем "выход из паузы" и таймер продолжает отсчет не с 6 сек, а с 30-40 сек, тоесть показывает время с момента первоначального старта мувика, а не с момента нажатия кнопки "рефреш".

Где-то я пропустил цепочку обнуления таймера, а вот где не пойму...
PS: Конечно много текста, но по другому подробно не объяснишь...
Вложения
Тип файла: zip test.zip (11.0 Кб, 68 просмотров)

Старый 30.01.2010, 00:54
GRAFLEKX вне форума Посмотреть профиль Найти все сообщения от GRAFLEKX
  № 4  
Ответить с цитированием
GRAFLEKX

Регистрация: Jan 2010
Сообщений: 5
Всем спасибо огромное за необъятную помощь, проблема решена, тему можно закрывать.


Последний раз редактировалось GRAFLEKX; 30.01.2010 в 01:02.
Создать новую тему Ответ Часовой пояс GMT +4, время: 14:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:38.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.