PDA

Просмотр полной версии : Неверный путь к переменной в объекте?


polol
29.07.2009, 18:49
если просто в _root сверху создаю Timeout, то удаление его при нажатии "end_button" (лежит там же, в _root) не происходит. Неверный путь?
var mouseListener:Object = new Object();
mouseListener.onMouseDown = function() {

function jumpToSlideshow () {
myInterval = setInterval (slideshow, 6000);
}

var wait:Number = setTimeout(jumpToSlideshow, 7000);
};
Mouse.addListener(mouseListener);


this.end_button.onRelease = function (){

clearTimeout(_root.mouseListener.wait)

}

iNils
29.07.2009, 19:36
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? то есть
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.