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

vooparker 29.12.2006 13:29

Ссылка на текущий экземпляр и setInterval
 
Есть класс:
Код:

class ClassName {
       
        private var $changeTime:Number = 500;
       
        private var $auto:Boolean;
       
        private var $intID:Number;
       
        public function ClassName( auto:Boolean )
        {
                $auto = auto;
        }
        public function start (  ) : Void
        {
                if ( $auto )
                {
                        change ( this );
                        $intID = setInterval ( change, $changeTime, this );
                }
                else
                {
                        change ( this );
                }
        }
        public function change ( instance:ClassName ) : Void
        {
                var instance:ClassName = instance;
                trace ( instance );
        }
}

Такой вариант работает. Но очень не нравиться, что при вызове метода change вне класса надо передавать в него ссылку на экземпляр.
Вариант:
Код:

public function change (  ) : Void
        {
                var instance:ClassName = this;
                trace ( instance );
        }

не работает через setInterval.
Вопрос: можно ли как то решить проблему, не передавая ссылку на экземпляр в качестве аргумента функции?

vooparker 29.12.2006 13:34

пока обошелся таким вариантом:
Код:

public function change ( instance:ClassName ) : Void
{
        var instance:ClassName = ( instance == undefined ) ? this : instance;
        trace ( instance );
}


silin 29.12.2006 13:36

а то:
Цитата:

setInterval(functionReference:Function, interval:Number, [param1:Object, param2, ..., paramN]) : Number
setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number
тебе второй вариант
$intID = setInterval (this, "change", $changeTime );

vooparker 29.12.2006 13:48

2silin: спасибо большое.;)
Ушел читать хэлп :umnik2:

FourSide 29.12.2006 14:14

Оппппа... А что такое $ перед переменной? По коду вроде не PHP....

vooparker 29.12.2006 14:21

FourSide, $ просто символ, если свойство или метод закрытый их имя я начинаю с $. Кто-то использует знак _ для этих целей. Ну а мне удобней с долларом.=)


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

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