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

Abdilxamidov 27.03.2009 19:32

Создать кастомный обработчик событий
 
Плиз, киньте самый простейших код по созданию собственного обработчика события, чтобы можно было передать переменную (не глобальную) в imLoaderCompleteListener. Я на форуме почитал, что это самый правильный путь по передаче переменных в обработчик, но примера там не нашел, а сам не могу придумать

Код AS3:

...
var imLoader:Loader=new Loader;
imLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imLoaderCompleteListener)
...


etc 27.03.2009 19:45

А какую переменную вы хотите передать?

Distorn 27.03.2009 20:46

можно так:
Код AS3:

var someVar:Object;
var imLoader:Loader=new Loader;
imLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,
    function imLoaderCompleteListener(e:Event):void
    {
        trace(someVar);
    });

Добавлено через 4 минуты
если событие своё, то естесственно лучше передавать в кастомном эвенте.

Gaen 27.03.2009 20:54

Distorn, а теперь покажите, как вы будете от этого события отписываться.

Distorn 27.03.2009 20:59

ну тут уже, видимо, никак.
впрочем вопрос отписки не стоял)

Psycho Tiger 27.03.2009 21:57

Distorn: лучше так никогда не писать и не советовать новичкам. Мало ли, запомнят и начнут плодить везде...

Цитата:

Сообщение от Distorn
если событие своё, то естесственно лучше передавать в кастомном эвенте.

Можно поподробнее? Носом чую, что использовал это сотни раз, хоть узнаю, как это называется :)

Abdilxamidov 27.03.2009 22:38

хм, а как правильно-то, в этом и заключался вопрос. А хочу я передать, например, переменную типа String. Просто, дайте пример, как нужно сделать, пожалуйста. Там в этих обработчиках разработчики :) AS3 что-то сильно намутили. Почему бы им не сделать, чтобы эти обработчики были нормальными ф-циями?

BlooDHounD 27.03.2009 22:50

Abdilxamidov, ничего там не мутили, и они нормальные функции.

Abdilxamidov 27.03.2009 23:14

а чего ж туда так же просто нельзя переменную в качестве параметра передать например так (как в другие нормальные ф-ции):
Код AS3:

private function myFunction(e:Event, param2:String,...){
      // тело ф-ции используещее param2
}


BlooDHounD 27.03.2009 23:27

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


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

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