2010-04-13 6 views
0

Эй, ребята, мне так тяжело это сегодня.Общение с родителями SWF

У меня есть игра, я загружен в родительский SWF -

Я хотел бы мой родительский SWF принимать события я диспетчерская из игры, или иметь возможность говорить в обоих направлениях.

- Причина в том, что я хотел бы выгрузить и загрузить игру, когда активен конечный экран.

Любая помощь, и я дам вам пиво.

благодарит заранее.

ответ

0

Является ли событие, отправляемое вашей игра позволило пузырю до вашего загрузчика швейцарского франков ? Значение по умолчанию для конструктора Event устанавливает значение false. Однако, если бы вы установили его в true, событие, отправленное дочерним swf, попало бы к слушателю его родителя.

Например: this.dispatchEvent(new Event("SOME_GAME_EVENT", true, true));

говорит Первый «истинно» значение, которое событие должно пузыря вверх по иерархии объектов. Второй говорит, что событие отменено. Как только ваш обработчик swf обработал событие, лучше всего тогда вызвать .stopPropagation() в событии, чтобы он больше не пузырился.

+0

Спасибо - это сработало. Теперь я могу захватить на родительском уровне события, отправленные игрой. Бонус этого метода заключается в отсутствии соединения SWF - поэтому GC'ing childSWF позже работает хорошо. еще раз спасибо TurkeyBurger – Glycerine

0

вы не можете положить в parentSWF:

childSWF.addEventListener (MyCustomEvent.SOME_EVENT, слушателя) и просто направить события из игры?

Что касается говорить по-другому, он может позвонить childSWF.someFunction() для вызова функций в классе документооборота childSWF и т.д.

+0

Действительно ли это так просто? Когда я отправил событие от ребенка, я обнаружил, что не могу принять их в родителе. Где я могу отправить мероприятие изнутри ребенка? это класс документов? И, слушая одного и того же ребенка в родителе, я должен слушать сам объект - не такое свойство, как «childSWF.content»? – Glycerine

+0

Я предположил, что у вас уже есть 'childSWF = loader.content как MovieClip'. и он должен работать независимо от того, куда вы отправляете мероприятие, до тех пор, пока оно не отменяется и оно пузырится. Я где-то читал, что swfs, возможно, должны быть в одном домене приложения или что-то в этом роде. Надеюсь, это не так, потому что это становится намного сложнее. – jonathanasdf

+1

На самом деле, возможно, вы захотите изучить Loader.sharedEvents: http://richardleggett.co.uk/blog/index.php/2009/04/02/loading-swfs-into-air-1-5-and -loaderinfo – jonathanasdf

Смежные вопросы