Форум 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)
-   -   setInterval в моём Классе (http://www.flasher.ru/forum/showthread.php?t=156286)

Evgan 19.05.2011 11:57

setInterval в моём Классе
 
Доброго времени суток

Не могу понять в чём дело.
Вот код класса:
Код AS1/AS2:

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

Внутри класса следует использовать такой синтаксис:
Код AS1/AS2:

setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number

Т.е:
Код AS1/AS2:

setInterval(this, "Metod_2",1000,'Вызов по средством setInterval');

Иначе вызываемая функция не будет видеть члены класса.

Evgan 19.05.2011 14:01

Цитата:

Сообщение от Flashrunner (Сообщение 997154)
Внутри класса следует использовать такой синтаксис:
Код AS1/AS2:

setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number

Т.е:
Код AS1/AS2:

setInterval(this, "Metod_2",1000,'Вызов по средством setInterval');

Иначе вызываемая функция не будет видеть члены класса.

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

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


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

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