Форум 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)
-   -   собственные события (http://www.flasher.ru/forum/showthread.php?t=97326)

firsoff 18.06.2007 21:23

собственные события
 
абстрактный пример... есть несколько классов в приложении, почти все из них генерируют собственные события, некоторые отвечают на эти события...
Знаю что есть 2 варианта (может и больше) оформления событий:
1. при помощи объекта слушателя, который регестририуется в классе-генераторе. что то типа classInstance.addEventListener('myEvent', instance_listener);
Отлов события происходит по instance_listener.myEvent = function(){}

2. при помощи "функции слушателя" (может не прав в терминологии),
те classInstance.myEvent = function(){}.
Вопрос - как делается 2й вариант?
С уважением.

ARTur2 18.06.2007 21:32

Пример для кнопки
Код:

my_btn.onPress = function{
la-la-la};


screamge 18.06.2007 21:45

Если я правильно понял вопрос то так:

Предположим класс диспечит событие 'onChtoto'
Код:

var listener:Object = new Object ();
var clas:Vashclass = new Vashclass ();
listener.onChtoto = function (){
      trace ('rabotaet')
}

class.addEventListener (listener)


firsoff 18.06.2007 21:46

блин, да конечно я знаю что пример для кнопки выглядит так! как также сделать в СОБСТВЕННОМ классе (по варианту 2)
MYclassInstance.myEvent = function(){}.

firsoff 18.06.2007 21:48

screamge, у вас пример для 1 го варианта, с ним я разобрался и работаю, меня интресуют что нужно сделать в классе чтобы работало по 2му (в вашем случае):
clas.onChtoto = function (){}

flskif 18.06.2007 23:14

Мне больше нравиться управление событиями в aswing.. я даже выдрал оттуда и расширил их EventDispatcher ;) берите
Использование: класс, производящий события, экстендится вот так:
Код:

import org.skif.EventDispatcherWithEasyDeleting;

class SomeClass extends EventDispatcherWithEasyDeleting
{
 // bla bla bla
}

и юзается вот так
Код:

var someClass:SomeClass = new SomeClass();
someClass.addEventListener("событие", функция, объект_с_этой_функцией);

ЗЫ: почему аплоад файлов на форуме не работает?

screamge 18.06.2007 23:28

to flskif, а чем этот класс лучше стандартной событийной модели?

flskif 18.06.2007 23:35

2screamge:
удобнее пользоваться. легко подписаться/отписаться на события. в больших проектах не создает путаницы


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

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