Показать сообщение отдельно
Старый 02.08.2007, 21:33
this.create вне форума Посмотреть профиль Отправить личное сообщение для this.create Найти все сообщения от this.create
  № 1  
Ответить с цитированием
this.create

Регистрация: Feb 2007
Сообщений: 264
По умолчанию Как правильно создать событие пользовательскому классу.

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

Немного поэксперементировав сделал другой вариант, рабочий, но упомянутые выше классы не понадобились.
Изначально мне было нужно, чтобы у класса было событие, которое срабатывало бы по окончании некоторого действия, начатого классом( двухступенчатая загрузка). Вот, что получилось:
Код:
//класс
//
class Test {
    public function Test() {
    }
    //
    public function preLoad():Void {
        /*
        здесь выполняются некоторые действия время окончания которых неизвестно затем вызывается метод onLoad
        */
        onLoad();
    }
    //
    //пустой метод
    public function onLoad():Void {
    }
}
Использование:
Код:
import mx.utils.Delegate;
//
var test:Test = new Test();
//
test.onLoad = Delegate.create(this, this.Do);
function Do():Void {
    trace(this); //_level0
}
//
test.preLoad();
Я подозреваю, что метод этот не соответствует правильному стилю программирования в AS2. Не могли бы вы прокомментировать его (какие недостатики, "подводные камни")?