Я новичок в AS3/Flash и узнаю о обработке событий. У меня есть класс «Белл», который отправляет событие, и если я добавлю слушателя событий к экземпляру этого класса Bell, он отлично работает. Это не то, что я хочу. У меня есть еще один класс, Pet, который я бы хотел прослушать Bell. Я вижу след из колокола, но не тот, что касается домашнего животного.AS3: прослушиватель событий не стреляет
Вот код Bell:
public class Bell extends EventDispatcher {
public static const BELL_RING:String = "bellRing";
public static const RING_INTERVAL:int = 1500;
private var ringIntervalID:int;
public function Bell()
{
ringIntervalID = setInterval(ringBell,RING_INTERVAL);
}
public function ringBell():void {
trace("RINGING THE BELL");
dispatchEvent(new Event(Bell.BELL_RING));
}
}
... и для домашних животных:
public class VirtualPet {
private var senseOfHearing:EventDispatcher = new EventDispatcher();
public function Pet(name:String):void
{
senseOfHearing.addEventListener(Bell.BELL_RING,heardBell);
}
public function heardBell(e:Event):void {
trace("Pet hears bell ringing");
}
}
... и для главного класса:
public class VirtualZoo extends Sprite
{
public function VirtualZoo()
{
var bell:Bell = new Bell();
var pet:VirtualPet = new VirtualPet('Stan');
}
}
Любая помощь очень ценится! События импортируются правильно и ошибок компилятора нет.
Как два занятия связаны? – putvande
Извините, я обновил его, добавив основной класс в конец. –
Если вы хотите, чтобы звонок отвечал домашнему животному, вам необходимо передать ссылку на объект звонка, домашнему животному, чтобы домашнее животное могло зарегистрировать слушателя и ответить в случае необходимости. –