[Robotlegs] Как связать Starling событие с коммандой в Robotlegs 2?
Столкнулся с проблемой при использовании Robotlegs 2 и Starling.
Я хочу из View через Mediator отправить событие унаследованное от starling.events.Event. Проблема в том, что такое событие нельзя будет связать с Command. Только событие унаследованное от flash.events.Event. Различные расширения Starling для Robotlegs не позволяют это сделать. |
Тоже когда-то интересовался данным вопросом. Я обошел это простой отправкой события flash.events.Event с медиатора. Это позволило не мешать старлинговые события, которые относятся к виду, с остальными классами приложения. Может есть решение более лаконичное. Плюс еще спасает SignalCommandMap. И сейчас не переживаю на счет этого.
|
А как тогда удобнее передать событие из View в Mediator?
|
Цитата:
|
Это тогда лишние классы создавать. Что для событий старлинга, что для сигналов.
|
Цитата:
|
В одном из проектов ( связка Robotlegs2 + Starling + Feathers ) подключал звуки. Очень не удобно было работать через медиаторы для каждой вью, где нужно было озвучить клик мышки или другие звуки интерфейса. Плюс тот же функционал нужен и внутри фреймворка ( при инжекте ). Сигналы добавлять пробывал, но это дополнительный импорт классов, менялась архитектура приложения в принципе, что-то сыпалось. Да и вродь как не в POC роботлегса ( есть расширения, но это уже больше похоже на костыль, решая вопрос оптимизации разработки). Но всё же очень хотелось что-бы всё было по стандартам и прямо из вью, работать со звуком не создавая 100-500 обработчиков.
Решение немного замудрённое. Конфиги Код AS3:
Код AS3:
Это нужно для того, что-бы связку Событие_конкретный_Класс -> Команда, заменить на Медиатор. Который будет обрабатывать всё что нам нужно, в одном месте, единожды инициализировашись Код AS3:
Код AS3:
Код AS3:
Диспатчить события SoundEvent.PLAY с параметрами, в медиаторах без лишних строчек кода Инжектить непосредственно SoundManager, для работы со звуком по статическому сценарию Передавать во вью, SoundService для работы со звуком с выдержанной инкапсуляцией. Расширить SoundMapMediator, который может отлавливать любое событие лишь по его идентификатору ( type ) вместо строгой типизации ИвентКлассов и связки Событие-Команда и так по каждому отдельному событию Код AS3:
|
alexandrratush, AlexCooper, спасибо за ответ.
|
Часовой пояс GMT +4, время: 13:27. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.