Просмотр полной версии : clearInterval почемуто не останавливает при событии onStatus
проблема следующая:
есть интервал для вызова функции
function showProgress()
{
resizeScale = setInterval(updateScale, 50);
}
showProgress();
который убивается при нажатии на кнопку
myButton.onRelease = function playPause()
{
clearInterval( resizeScale );
}
а вот на событие onStatus почуму то не срабатывает
netStream.onStatus = function(infoObject:Object) {
switch (infoObject.code) {
case'NetStream.Play.Stop':
clearInterval( resizeScale );
break;
}
}
в чём проблемма?
cleptoman
02.04.2009, 21:19
проблемма в том , что в АС2 в обработчиках все происходит относительно объека испустившего его.
т.е. тут
netStream.onStatus = function(infoObject:Object) {
все происходит относительно объекта netStream
соответственно в нем нет свойства resizeScale
mx.utils.Delegate вам в помощь
Stargazer
02.04.2009, 21:48
проблемма в том , что в АС2 в обработчиках все происходит относительно объека испустившего его.
Это в том, что касается this. А вот что касается области видимости переменных - то по моему опыту у меня сложилось чувство, что всё зависит от того, где было выполнено объявление переменной и где выполнено присваивание (в данном случае) обработчика onStatus.
van4es, а что выводит trace(resizeScale), если его поставить внутрь onStatus?
а можно как то помочь? а то я думаю долго буду разбираться с mx.utils.Delegate
trace(resizeScale)
выводит 1
Stargazer
02.04.2009, 22:23
Хм... В таком случае делегаты вам не нужны.
Попробуйте трейсить id, в те моменты, когда вы получаете его от setInterval и в те моменты, когда вы интервалы удаляете. Убедитесь, что у вас не возникает лишних интервалов и что вы удаляете именно id активного интервала, а не уже удалённого или ещё несуществующего.
cleptoman
03.04.2009, 10:16
Stargazer, а вы пробовали так в классах писать? без Delegate
хм.....чесно говоря, я запарился уже его трейсить и убивать. уже такие извращения делал, что внутри onStatus вызавал функцию, которая его(интервал) убивает.
При нажатии на кнопку, эта функция его убивает, а при вызове onStatus - нет.
Решил проблему совершенно другим путём....а вообще хотел бы чтобы гуру флэша разобрались с этим моментом.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.