Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как повесить слушателя из другого класса пакета (http://www.flasher.ru/forum/showthread.php?t=139367)

stub 29.04.2010 10:58

как повесить слушателя из другого класса пакета
 
Привет всем!
Хочу повесить на клип слушателя

Код AS3:

MovieClip(BaseClient.err.parent).addEventListener(Event.ENTER_FRAME, BaseClient.checkToStop );

где BaseClient другой public сclass пакета.
Спасибо за внимания.

mickfallout 29.04.2010 11:10

если err - потомок мувиклипа в иерархии отображения , объявленный как public static var, а checkToStop - public static function способная принимать один аргумент типа Event то вроде должно сработать. хотя мне кажется Вы что-то не то хотите/делаете.

stub 29.04.2010 11:29

да err потомок мувиклипа в иерархии отображения , объявленный как public static var а вот если checkToStop объявить как public static function то возникает куча ошибок в классе BaseClient потипа
Код:

1180: Call to a possibly undefined method removeEventListener.    removeEventListener(Event.ENTER_FRAME, checkToStop );

mickfallout 29.04.2010 12:42

Вы действительно хотите повесить листнер на переменную класса а не экземпляра? тогда поищите ошибку так:
Код AS3:

trace(BaseClient.err);
trace(BaseClient.err.parent);
trace(BaseClient.checkToStop);
MovieClip(BaseClient.err.parent).addEventListener(Event.ENTER_FRAME, BaseClient.checkToStop );

Но судя по тому что в функции checkToStop вы обращаетесь к методам экземпляра, вам надо делать что-то типа
Код AS3:

var mc:BaseClient=new BaseClient();
mc.addEventListener(Event.ENTER_FRAME, mc.checkToStop );


stub 29.04.2010 12:45

проблему решил. Спасибо всем. Если интересно то извратился вот так
Код AS3:

MovieClip(BaseClient.err.parent).addEventListener(Event.ENTER_FRAME, MovieClip(BaseClient.err.parent).checkToStop );

Добавлено через 4 минуты
mickfallout я хотел повесить листнер на переменную класса
trace(BaseClient.checkToStop); не видит

mickfallout 29.04.2010 12:56

а можно не так сильно извращаться.
Код AS3:

var BaseClientErrParent:MovieClip = BaseClient.err.parent as MovieClip
BaseClientErrParent.addEventListener(Event.ENTER_FRAME, BaseClientErrParent.checkToStop )

и вообще, что-то я Ваш код не пойму. зачем приводить BaseClient.err.parent к динамическому классу не имеющему метода checkToStop? приводите к тому который имеет.


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

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