PDA

Просмотр полной версии : проблема с использованием setInterval в классах


25_Kadr
02.08.2005, 11:09
всем доброго времени суток.
написал следующее

class myinterval {
var counterInterval:Number = new Number(0);
var count:Number = new Number(1);
public function myinterval(){
}
public function startSend(){
counterInterval = setInterval(sendXML,1000);
trace("counterInterval="+counterInterval);
}
public function sendXML() {
trace("count="+count);
if (count<3){
trace("hello");}
else {
trace("counterInterval="+counterInterval);
clearInterval(counterInterval);
}
count=count+1;
}

}

на главной временной диаграмме написал
var my:myinterval = new myinterval();
my.startSend();
stop();

tracert выводит

counterInterval=1 // это из startSend

this.count=undefined // это все из sendXML
counterInterval=undefined

this.count=undefined
counterInterval=undefined

this.count=undefined
counterInterval=undefined

this.count=undefined
counterInterval=undefined

теряются значения переменных, соотвественно clearInterval не работает, в if не заходит

что не так делаю?
спасибо.

7thsky™
02.08.2005, 11:23
Блин можно и хелп почитать! Там написано что есть еще один вид вызова setInterval.

с таким синтаксисом:
setInterval (obj:Object, method:String, delay:Number)

public function startSend(){
counterInterval = setInterval(this, 'sendXML', 1000);
trace("counterInterval="+counterInterval);
}


происходит то что при вызове просто функции через сетинтервал, цепочка видимости ее ограничивается 2 пунктами, локальными данными и объектом _global

смотреть хелп тут (http://www.novemberain.com/livedocs/Help/ActionScriptLangRef/00001662.html)

25_Kadr
02.08.2005, 11:31
понял
кстати ссылка не работает

7thsky™
02.08.2005, 11:33
специально для тебя:

смотреть хелп тут (http://www.novemberain.com/livedocs/Help/ActionScriptLangRef/00001662.html)