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

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

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

Регистрация: Sep 2011
Сообщений: 19
Question Как сбросить таймер в функции?

Доброго времени суток, форумчане! Назрел вопрос, как сбросить таймер в задаваемой функций?

Создаю слой и размещаю в первом кадре динамические текстовые поля минуты и секунды двух таймеров(переменные m, s, m1, s1) и присваиваю им начальное значение 0

Код AS1/AS2:
m = 0; // начальное время минуты
s = 0; // начальное время секунды
m1 = 0; // начальное время минуты
s1 = 0; // начальное время секунды
rs =0;
rs1 =0;
Во втором кадре пишу функцию вычисления времени первого и второго таймера (второй быстрей первого)

Код AS1/AS2:
 
stop();
count = function () {
 
// правильное время
s = int(getTimer() / 1000 ) - rs // время секунды
// время минуты
if ( s > 59 ) {
               m = m + 1; 
               rs = int(getTimer() /1000)
              }
// не правильное время
s1 = int(getTimer() / 600 ) - rs1 // время секунды (идут быстрее)
// время минуты
if ( s1 > 59 ) {
                m1 = m1 + 1; 
                rs1 = int(getTimer() /1000)
               }
};
// запуск функции
interval = setInterval(count, 1);
count();
А так же рисую кнопку остановки функции ("стоп") с кодом

Код AS1/AS2:
 
on(release) {
	clearInterval(interval);
	gotoAndPlay(3);
}
В третьем кадре делаю кнопку "заново" с кодом

Код AS1/AS2:
 
on(release) {
	gotoAndPlay(1);
}
В итоге получаю: при старте ролика время идет правильно в обоих таймерах с нужным ускорением, при нажатии кнопки "стоп" время останавливается как надо, но при нажатии "заново" время не сбрасывается, а продолжает идти с момента старта мувика... Как мне это поправить? буду рад любым предложениям и советам. исходник прилагаю
Вложения
Тип файла: rar timer.rar (4.3 Кб, 43 просмотров)


Последний раз редактировалось iNils; 18.01.2012 в 13:57.
Старый 18.01.2012, 16:34
eight.alex вне форума Посмотреть профиль Отправить личное сообщение для eight.alex Найти все сообщения от eight.alex
  № 2  
Ответить с цитированием
eight.alex
 
Аватар для eight.alex

Регистрация: Jan 2012
Сообщений: 24
Попробуйте в третьем кадре обнулить переменные.
Код AS1/AS2:
on(release) {
gotoAndPlay(1);
m = 0;
s = 0;
m1 = 0;
s1 = 0; 
rs =0;
rs1 =0;
}

Старый 18.01.2012, 22:40
_LennY_ вне форума Посмотреть профиль Отправить личное сообщение для _LennY_ Найти все сообщения от _LennY_
  № 3  
Ответить с цитированием
_LennY_
 
Аватар для _LennY_

Регистрация: Sep 2011
Сообщений: 19
eight.alex , пробовал... к сожалению не помогло ...

Старый 20.01.2012, 07:27
stantler вне форума Посмотреть профиль Отправить личное сообщение для stantler Найти все сообщения от stantler
  № 4  
Ответить с цитированием
stantler
 
Аватар для stantler

Регистрация: Apr 2011
Адрес: Томск
Сообщений: 57
Цитата:
Сообщение от eight.alex Посмотреть сообщение
Попробуйте в третьем кадре обнулить переменные.
Код AS1/AS2:
on(release) {
gotoAndPlay(1);
m = 0;
s = 0;
m1 = 0;
s1 = 0; 
rs =0;
rs1 =0;
}
Этот вариант не подойдет, т.к. переменные не видны из этой функции. Попробуйте обращаться к абсолютному пути: _root.m, _root.s и т.д.

Старый 20.01.2012, 11:59
_LennY_ вне форума Посмотреть профиль Отправить личное сообщение для _LennY_ Найти все сообщения от _LennY_
  № 5  
Ответить с цитированием
_LennY_
 
Аватар для _LennY_

Регистрация: Sep 2011
Сообщений: 19
stantler, нет... не помогло... в первый и в третий кадр вставляю :

Код AS1/AS2:
_root.m = 0; // начальное время минуты
_root.s = 0; // начальное время секунды
_root.m1 = 0; // начальное время минуты
_root.s1 = 0; // начальное время секунды
_root.rs =0;
_root.rs1 =0;
Но никаких изменений... что это вообще может быть ? глюк функции или у меня просто руки из заднего места растут ? =)

Старый 20.01.2012, 19:13
eight.alex вне форума Посмотреть профиль Отправить личное сообщение для eight.alex Найти все сообщения от eight.alex
  № 6  
Ответить с цитированием
eight.alex
 
Аватар для eight.alex

Регистрация: Jan 2012
Сообщений: 24
Переменная во всех кадрах находится?

Старый 20.01.2012, 21:08
_LennY_ вне форума Посмотреть профиль Отправить личное сообщение для _LennY_ Найти все сообщения от _LennY_
  № 7  
Ответить с цитированием
_LennY_
 
Аватар для _LennY_

Регистрация: Sep 2011
Сообщений: 19
eight.alex, да во всех . в первом и третьем их обнуление указанным выше способом, во втором функция

Старый 22.01.2012, 20:48
stantler вне форума Посмотреть профиль Отправить личное сообщение для stantler Найти все сообщения от stantler
  № 8  
Ответить с цитированием
stantler
 
Аватар для stantler

Регистрация: Apr 2011
Адрес: Томск
Сообщений: 57
Тогда сделайте так, в функции, которая обращается к переменным просто вызовите "trace(this);" и посмотрите путь. А потом уже этот путь подставте в функцию обнуления

Старый 23.01.2012, 11:43
_LennY_ вне форума Посмотреть профиль Отправить личное сообщение для _LennY_ Найти все сообщения от _LennY_
  № 9  
Ответить с цитированием
_LennY_
 
Аватар для _LennY_

Регистрация: Sep 2011
Сообщений: 19
Цитата:
Сообщение от stantler Посмотреть сообщение
Тогда сделайте так, в функции, которая обращается к переменным просто вызовите "trace(this);" и посмотрите путь. А потом уже этот путь подставте в функцию обнуления
А можно поподробнее ? Если вставляю в функцию "trace(this);" то трэйс выдаёт - "undefended" .... Может что-то не так делаю ?

Старый 24.01.2012, 06:37
stantler вне форума Посмотреть профиль Отправить личное сообщение для stantler Найти все сообщения от stantler
  № 10  
Ответить с цитированием
stantler
 
Аватар для stantler

Регистрация: Apr 2011
Адрес: Томск
Сообщений: 57
Цитата:
Сообщение от _LennY_ Посмотреть сообщение
А можно поподробнее ? Если вставляю в функцию "trace(this);" то трэйс выдаёт - "undefended" .... Может что-то не так делаю ?
Странно.
Попробуйте вставить "trace(this)" перед стоп, в начале функции count() и после или до задания переменных. По идее трэйс должен выдать путь, где выполняются функции

Создать новую тему Ответ Часовой пояс GMT +4, время: 06:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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