PDA

Просмотр полной версии : intervalID вне Flash


as_68
02.12.2005, 16:10
Уважаемые, подскажите, что за хрень.
Делаю таймер через 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
странно...я ее сразу переделал. у меня всеровно не работало :=)