А если такой пример.
Собака может родить либо
щенка, либо
котенка. При этом собака отправляет событие
TransportEvent.

Код AS3:
public function TransportEvent(cargo:Object, type:String, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
_cargo = cargo;
}
Вариант реализации #1

Код AS3:
var dog:Dog = new Dog();
dog.addEventListener(DogEvents.DOG_BIRTH, listener);
function listener(event:TransportEvent)
{
}
Вариант реализации #2

Код AS3:
var dog:Dog = new Dog();
dog.addEventListener(TransportEvent.TRANSPORT, listener);
function listener(event:TransportEvent)
{
if (event.cargo is Dog) ...
}
Какой из этих двух вариантов правильный и почему?
P.S. Переменная
cargo типа
Object потому что я не хочу создавать кучу классов, которые будут отличаться от
TransportEvent только типом переменной
cargo.