Форум 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=93979)

BM Senya 02.04.2007 11:24

запуск таймера при проигрывании сцены
 
Доброе время суток уважаемые флэшеры!
подскажите
нужно в сцену вставить отчёт времени её проигрывания,
а при окончании проигрывания, происходил переход на другую сцену
в которой отображается результат времени, за который
была проиграна предыдущая сцена

Север 02.04.2007 11:48

1. время проигрывания ролика без Action Scripta по идее равна
frame/fps=time
где fps - колическтво кадров в секунду (ставится в свойствах ролика)
frame - собственно количество кадров

2. Можно использовать setInterval, т.е. вызывай интервал каждую секунду где увеличивай объявленную тобой переменную. По окончанию ролика №1 удаляй интервал и получай искомую величину.

CorC 02.04.2007 11:52

Цитата:

Сообщение от Север
Можно использовать setInterval, т.е. вызывай интервал каждую секунду где увеличивай объявленную тобой переменную.

он иногда не соответствует реальному времени
а getTimer нынче уже не в моде?
я дак без него как без рук :)

вызываешь его при старте и запоминаешь значение
потом вконце из его же вычитаешь запомненное значение
и будет сколько миллисекунд проигрывалась сцена...

Север 02.04.2007 12:02

под рукой флеша нет, поищи что то вроде GetData или тому подобное

BM Senya 02.04.2007 12:19

А исходник не получится, если не долго делать.
А то я так не догоняю)))

и нужно чтоб ход времени отображался

FourSide 02.04.2007 12:24

Цитата:

Сообщение от Север
под рукой флеша нет, поищи что то вроде GetData или тому подобное

Что такое GetData? Вроде, ясно написали - getTimer(), возвращающая кол-во миллисекунд с начала ролика. Плюс - добавить onEnterFrame на тот клип, который будет показывать отображение времени.

CorC 02.04.2007 12:28

1 кадр
Код:

var Counter=getTimer();
X кадр
Код:

trace(getTimer()-Counter);

BM Senya 02.04.2007 12:39

Дело в том, что у меня один кадр в сцене.
Ребят, ну помогите исходником или ещё поподробнее.

FourSide 02.04.2007 12:40

Скидывай что есть (исходник с одним кадром). Только если он небольшой.

CorC 02.04.2007 12:49

зачем сцену на 1 кадр?
и вообще сцены зло...
ну тогда пиши что я писал выше
про кадр Х в 1 кадре 2 сцены

BM Senya 02.04.2007 12:54

Цитата:

Сообщение от CorC
1 кадр
Код:

var Counter=getTimer();
X кадр
Код:

trace(getTimer()-Counter);

А чё это всё что нужно вписывать?

CorC 02.04.2007 12:56

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

BM Senya 02.04.2007 13:04

а этот код можете подправить
только без кнопок
время сразу при воспроизведении чтоб шло
Код:

_root.pausebutton._visible = 0;
//
function restartTimer() {
        hours = "00";
        minutes = "00";
        seconds = "00";
        milli = "00";
        buttonPressTime = getTimer()/1000-pauseLength;
        pause();
}
//
function pause() {
        pauseTime = getTimer()/1000;
        timing = false;
}
//
function unpause() {
        unpauseTime = getTimer()/1000;
        pauseLength = (unpauseTime-pauseTime)+pauseLength;
        timing = true;
}
//
_root.onEnterFrame = function() {
        totalTime = getTimer()/1000-pauseLength;
        goTime = totalTime-buttonPressTime;
        //
        if (timing) {
                hours = Math.floor(goTime/3600);
                minutes = Math.floor((goTime/3600-hours)*60);
                seconds = Math.floor(((goTime/3600-hours)*60-minutes)*60);
                milli = Math.floor((gotime-(seconds+(minutes*60)+(hours*3600)))*100);
                if (seconds<10) {
                        seconds = "0"+seconds;
                }
                if (minutes<10) {
                        minutes = "0"+minutes;
                }
                if (hours<10) {
                        hours = "0"+hours;
                }
                if (milli<10) {
                        milli = "0"+milli;
                }
                if (goTime>120) {
                        gotoAndStop("TimeToWin",1);
                }
        }
};
unpausebutton.onRelease=function() {
        unpause();
        pausebutton._visible = 1;
        unpausebutton._visible = 0;
}
pausebutton.onRelease=function() {
        pause();
        unpausebutton._visible = 1;
        pausebutton._visible = 0;
}
reset.onRelease= function() {
        restartTimer();
        pausebutton._visible = 0;
        unpausebutton._visible = 1;
}


CorC 02.04.2007 13:07

уберите timing везде и все ...

BM Senya 02.04.2007 13:19

Убрал
но у меня тепер ошибку выбивает

CorC 02.04.2007 13:25

ничем помочь не могу
я же не знаю что именно вы сделали :)
можно было лишь убрать
Код:

if (timing) {
      и
}

когда вы возьметесь за ум и начнете сами программировать
что бы не задавать лишних вопросов с которыми
любой школьник справится?

BM Senya 02.04.2007 13:31

CorC, вы можете лишнее удалить,
нужное оставить?

etc 02.04.2007 13:35

BM Senya, может уже хватит просить делать вашу работу за вас?

CorC 02.04.2007 13:40

Цитата:

Сообщение от BM Senya
CorC, вы можете лишнее удалить,
нужное оставить?

я уже вам конкретно сказал что нужно убрать
З.Ы.: по моему флеш создан не для вас,
переходите к более простым вещам

BM Senya 02.04.2007 13:47

_etc, я от силы четыре месяца как изучаю Flash
и пока очень туго соображаю в AS
поэтому прошу по возможности наиболее подробные ответы
чтоб я смог хоть как-то разобраться

etc 02.04.2007 14:35

Цитата:

Сообщение от BM Senya
и пока очень туго соображаю в AS

Нужно понять, что вам дают, а не просить переделать.


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

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