Настраиваемое событие с динамическим ключевым словом будет работать так, как рекламируется в посте Danjp, но я бы советовал против него в любом более крупном проекте. Вы теряете возможность строго вводить, какова ваша информационная нагрузка - если кто-то еще должен редактировать ваш код, он может и не догадываться, например, что у вас динамически генерируется свойство «myData» для вашего события. Это не вызовет бесконечной головной боли для того, кто попытается отредактировать ваш код позже.
«Правильный» способ сделать это - создать пользовательские события со строго типизированными членами, которые содержат ваши данные. Так, например:
package com.yourdomain.events {
import flash.events.Event;
import com.yourdomain.model.vo.MyValueObject;
public class MyEvent extends Event {
public var myVO:MyValueObject;
public function MyEvent(type:String):void {
super(type);
}
}
}
Так что, да, это в двух словах. Вы захотите указать в Google точный формат, мой упрощенный - ваш вызов super () должен иметь другие параметры, и вы захотите переопределить метод clone (). Но преимущество здесь в том, что любой, кто проверяет ваш код, точно знает, какой тип данных искать в качестве полезной нагрузки. В данном случае это экземпляр MyValueObject.
Дайте мне знать, если у вас есть какие-то конкретные вопросы о том, почему, но это общая идея. Всякий раз, когда вы делаете большой проект AS3, вы захотите использовать такие события, как это, чтобы не только отправлять различные уведомления, но и нести четко определенные и строго типизированные полезные данные.