Форум 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)
-   -   class <= addListener (http://www.flasher.ru/forum/showthread.php?t=70552)

Kan 17.10.2005 16:00

class <= addListener
 
Создаю класс:

class ball{
....

Mouse.addListener(this);
onMouseDown = function{
что-то происходит
}
....
}
это не работает...в классе нельзя создавать слушатель, или я что-то делаю не так?
Только начинаю изучать классы...подскажите

7thsky™ 17.10.2005 19:38

а ты че так и пишешь? и не работает?

silin 17.10.2005 21:11

7thsky™ прав, не зная чего ты добиваешься, нельзя сказать..
вот так(если определять в контрукторе), например, работает:
Код:

class Ball{
        function Ball(){
                var o=this;
                Mouse.addListener(o);
                o.onMouseDown = function(){
                        trace('MouseDown');
                }
        }
}


Kan 23.10.2005 00:30

я понимаю, что это дело в конструкторе.
Но почему нельзя сразу повесить слушателя this?

class Ball{
function Ball(){
Mouse.addListener(this);
this.onMouseDown = function(){
trace('MouseDown');
}
}
}

Почему так не работает?...спасибо за помощь

silin 23.10.2005 20:50

думаю, потому листером может быть тока объект (это было в AS1: класс и был объектом..,или что-то типа, в ас2 эземпляр с классом разделены)
еще думаю, что все мона, если знать чего добиывешься (а у тебя неясно..)

7thsky™ 23.10.2005 21:39

Цитата:

Сообщение от Kan
я понимаю, что это дело в конструкторе.
Но почему нельзя сразу повесить слушателя this?

Код:

class Ball{
        function Ball(){
                Mouse.addListener(this);
                this.onMouseDown = function(){
                        trace('MouseDown');
                }
        }
}

Почему так не работает?...спасибо за помощь

Твой вариант вообще должен дать ошибку компиляции.

Надо объявлять переменную заранее, или dynamic class
Код:

class Test {
        public var onMouseDown;
        function Test () {
                Mouse.addListener (this);
                this.onMouseDown = function () {
                        trace ('MouseDown');
                };
        }
}



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

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