PDA

Просмотр полной версии : setInterval в моём Классе


Evgan
19.05.2011, 11:57
Доброго времени суток

Не могу понять в чём дело.
Вот код класса:
class my_Class extends MovieClip {
//________________ VAR __________________
private var Param_1:Number;
private var Param_2:String;
//________________ КОНСТРУКТОР __________________
function my_Class() {
trace('my_Class()');
//
Param_1=444;
Param_2='траялял';
//
Metod_1();
}
//________________ Функция вызываемоя из Metod_1() __________________
private function Metod_2(kto_Vizval:String) {
trace('<Metod_2() '+kto_Vizval+' >');
trace('Param_1 = '+Param_1);
trace('Param_2 = '+Param_2);
}
//________________ Функция вызываемоя из конструктра __________________
private function Metod_1() {
trace('Metod_1()');
Metod_2('Простой вызов');
setInterval(Metod_2,1000,'Вызов по средством setInterval');
}
}

В случаи если функция "Metod_2()" вызывается простым способом переменные "Param_1" и "Param_2" определены, ещели вызываем через setInterval, то Param_1 = undefined и Param_2 = undefined.

Как так? Кругом голова идёт. Прям как в том фильме "Видишь суслика?.. и я нет. А он есть."

Flashrunner
19.05.2011, 12:52
Внутри класса следует использовать такой синтаксис:
setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number

Т.е:
setInterval(this, "Metod_2",1000,'Вызов по средством setInterval');
Иначе вызываемая функция не будет видеть члены класса.

Evgan
19.05.2011, 14:01
Внутри класса следует использовать такой синтаксис:
setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number

Т.е:
setInterval(this, "Metod_2",1000,'Вызов по средством setInterval');
Иначе вызываемая функция не будет видеть члены класса.

Спасибо большое

Но это блин как то нехорошо+) язык один и тот же а в классах есть отличии+(
И скорее всего это не единственное отличие?
Может есть некий перечень этих отличий? что бы просветиться. А то так можно и свихнуться, гадая почему то или иное не работает в классе, в то время как без него всё в порядке?