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

polol 29.07.2009 18:49

Неверный путь к переменной в объекте?
 
если просто в _root сверху создаю Timeout, то удаление его при нажатии "end_button" (лежит там же, в _root) не происходит. Неверный путь?
Код AS1/AS2:

var mouseListener:Object = new Object();
mouseListener.onMouseDown = function() {
 
          function jumpToSlideshow () {
        myInterval = setInterval (slideshow, 6000);
 }
 
          var wait:Number = setTimeout(jumpToSlideshow, 7000);
};
Mouse.addListener(mouseListener);

Код AS1/AS2:

this.end_button.onRelease = function (){
 
                clearTimeout(_root.mouseListener.wait)
 
}


iNils 29.07.2009 19:36

Код AS1/AS2:

var myInterval:Number;
var wait:Number;
function jumpToSlideshow () {
        myInterval = setInterval (slideshow, 6000);
}
this.onMouseDown = function () {
        wait = setTimeout (jumpToSlideshow, 7000);
};
this.end_button.onRelease = function () {
        clearTimeout (wait);
};

Не используйте вложенный функции
Переменные определенный в функциях (локальные) живут лишь во время выполнения функции.

polol 29.07.2009 19:53

Nils, маленкое уточнение: может,
Код:

clearTimeout (_level0.wait)
вместо
Код:

clearTimeout (wait)
? хотя и в этом случае интервал не получается удалить. не работает и
Код:

clearTimeout (_parent.wait)
...

Добавлено через 6 минут
и раз уж интервал wait в корне, то я вызываю его из объекта через _level0? то есть
Код AS1/AS2:

var mouseListener:Object = new Object();
 
mouseListener.onMouseDown = function() {
 
function jumpToSlideshow () {
 
 
myInterval = setInterval (slideshow, 6000);
 
 }
 
          _level0.wait = setTimeout(jumpToSlideshow, 6000);


incorp 29.07.2009 20:07

хех, да все проще господа:) сначала вызывается mouseListener.onMouseDown для запуска интервала, потом при нажатии на кнопку вновь вызывается сначала mouseListener.onMouseDown, в котором определяется новый интервал а старый не убивается, и чуток позжа this.end_button.onRelease который чистит последний из двух созданых интервалов. а первый как жил так и живет:)

polol 29.07.2009 20:34

incorp, видимо это несколько другое.
кликом на end_button убить мне надо и Interval, и Timeout. а вызвать Interval к жизни только ОДНИМ mouseListener.onMouseDown.

Добавлено через 1 час 11 минут
заработало! все-так Ваша подсказка, incorp, навела меня на мысль. спасибо и Вам за дополнение, iNils.


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

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