Robotlegs - вторая отправка не работает с addViewListener

У меня есть посредник, созданный в Robotlegs, и его связанный вид будет отправлять два разных типа событий. Когда посредник фиксирует событие, он просто отправляет событие. Проблема, с которой я столкнулся, заключалась в том, что первое событие было повторно отправлено безупречно, но второе событие не было отправлено.

Однако если я вручную назначу другой обработчик второму событию, событие будет правильно записано.

Ниже приведен соответствующий код:

public class MyMediator extends Mediator
{
    [Inject]
    public var view:MyView;

    public override function onRegister():void
    {
        super.onRegister();

        addViewListener( SomeEventTypeA.COOL_EVENT, dispatch, SomeEventTypeA ); // This event is dispatched correctly
        addViewListener( SomeEventTypeB.STUCK, dispatch, SomeEventTypeB );  // This one is not correctly dispatched

        //A twist, if I uncomment the following code, the event is captured by its handler
        //addViewListener( SomeEventTypeB.STUCK, view_stuck, SomeEventTypeB );
    }

    private function view_stuck( event:SomeEventTypeB ):void
    {
        //ah ha, this is called correctly if the above relevant line is uncommented
    }
}

1 ответ

Решение

Нашел причину:

Событие должно иметь правильный метод клонирования для правильной повторной отправки. Смотрите связанную ссылку:

http://knowledge.robotlegs.org/kb/application-architecture/why-doesnt-my-event-trigger-the-command-it-is-mapped-to

Другие вопросы по тегам