Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как сбросить таймер в функции? (http://www.flasher.ru/forum/showthread.php?t=174122)

_LennY_ 18.01.2012 12:42

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

Создаю слой и размещаю в первом кадре динамические текстовые поля минуты и секунды двух таймеров(переменные 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);
}

В итоге получаю: при старте ролика время идет правильно в обоих таймерах с нужным ускорением, при нажатии кнопки "стоп" время останавливается как надо, но при нажатии "заново" время не сбрасывается, а продолжает идти с момента старта мувика... Как мне это поправить? буду рад любым предложениям и советам. исходник прилагаю

eight.alex 18.01.2012 16:34

Попробуйте в третьем кадре обнулить переменные.
Код AS1/AS2:

on(release) {
gotoAndPlay(1);
m = 0;
s = 0;
m1 = 0;
s1 = 0;
rs =0;
rs1 =0;
}


_LennY_ 18.01.2012 22:40

eight.alex , пробовал... к сожалению не помогло ...

stantler 20.01.2012 07:27

Цитата:

Сообщение от eight.alex (Сообщение 1057702)
Попробуйте в третьем кадре обнулить переменные.
Код AS1/AS2:

on(release) {
gotoAndPlay(1);
m = 0;
s = 0;
m1 = 0;
s1 = 0;
rs =0;
rs1 =0;
}


Этот вариант не подойдет, т.к. переменные не видны из этой функции. Попробуйте обращаться к абсолютному пути: _root.m, _root.s и т.д.

_LennY_ 20.01.2012 11:59

stantler, нет... не помогло... в первый и в третий кадр вставляю :

Код AS1/AS2:

_root.m = 0; // начальное время минуты
_root.s = 0; // начальное время секунды
_root.m1 = 0; // начальное время минуты
_root.s1 = 0; // начальное время секунды
_root.rs =0;
_root.rs1 =0;

Но никаких изменений... что это вообще может быть ? глюк функции или у меня просто руки из заднего места растут ? =)

eight.alex 20.01.2012 19:13

Переменная во всех кадрах находится?

_LennY_ 20.01.2012 21:08

eight.alex, да во всех . в первом и третьем их обнуление указанным выше способом, во втором функция

stantler 22.01.2012 20:48

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

_LennY_ 23.01.2012 11:43

Цитата:

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

А можно поподробнее ? Если вставляю в функцию "trace(this);" то трэйс выдаёт - "undefended" .... Может что-то не так делаю ?

stantler 24.01.2012 06:37

Цитата:

Сообщение от _LennY_ (Сообщение 1058550)
А можно поподробнее ? Если вставляю в функцию "trace(this);" то трэйс выдаёт - "undefended" .... Может что-то не так делаю ?

Странно.
Попробуйте вставить "trace(this)" перед стоп, в начале функции count() и после или до задания переменных. По идее трэйс должен выдать путь, где выполняются функции


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

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