Форум 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)
-   -   intervalID вне Flash (http://www.flasher.ru/forum/showthread.php?t=72682)

as_68 02.12.2005 16:10

intervalID вне Flash
 
Вложений: 1
Уважаемые, подскажите, что за хрень.
Делаю таймер через setInterval.
Когда запускаю во Flashe все работает.
Если запускаю сгенеренную swf-ку или exe-шник пишет intervalID undefined.
Код:

stop();
_root.n=1;
var my_sound:Sound = new Sound();
my_sound.onLoad = function(success:Boolean) {
        if (success) {
                my_sound.start();
                _root.intervalID = setInterval(sShow, 7500);
                as.text += "intervalID = "+intervalID+"\r";
                //                trace(intervalID);
        }
};
my_sound.loadSound("sound/rekviem.mp3", true);
sShow = function () {
        as.text += getTimer()+" ms.\r";
        // trace("interval called: "+getTimer()+" ms.");
        if (_root.n==5) {
                clearInterval(_root.intervalID);
                as.text += "interval clear";
                // trace("interval clear");
        } else {
                _root.n++;
        }
};

Исходники прилагаются.

KUZEN 02.12.2005 16:26

clearInterval(m_root.intervalID);

может всётаки так clearInterval(_root.intervalID);

as_68 02.12.2005 18:26

Да, действительно описался!
Но проблема не решилась.
У меня до этой строки и не доходит.
По строке as.text += "intervalID = "+intervalID+"\r";
в текстовом поле все равно выводит "intervalID = undefined"
и программа дальше не идет.
А во Flash-программе все ок.

Штрек 03.12.2005 02:38

as.text += "intervalID = "+_root.intervalID+"\r";

as_68 05.12.2005 11:11

Цитата:

as.text += "intervalID = "+_root.intervalID+"\r";
Не помогло. :(
Может быть проблема в загрузке звука в projector?

motor4ik 05.12.2005 11:40

нет, там все просто. у тебя интервал присваивается через 7.5 сек, а ты присваиваешь...сразу же после вызова...не знаю пока почему так было ...и она срабатывала сразу...при ctrl+Enter, ну вобщем дело в этом...
эту штуку _root.as.text += ("intervalID = "+_root.intervalID);
тебе нужно поставить в функциию вызова

as_68 05.12.2005 12:11

Всем спасибо!
Разобрался. :D
Оказалось функция sShow = function () {}
должна быть анонимной
function sShow():Void{}
тогда все работает ;)

motor4ik 05.12.2005 12:43

странно...я ее сразу переделал. у меня всеровно не работало :=)


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

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