Всякие разные штуки сомнительной полезности сделанные в свободное от работы время.
LocalConnetion между AS2 и AS3.
Запись от wvxvw размещена 08.09.2009 в 16:14
Получилась смешная ситуация - второй флешер который работает у нас искал возможность подружить AS2 и AS3 и нашел мой старый проект, вообще даже не зная, что это мое "творчество". Чесно говоря он не совсем работал и был написан не совсем в лучшем стиле...
Немножко обновил его и почистил. Добавил документацию.
Сорцы:
http://code.google.com/p/e4xu/source.../trunk/src/as2
(AS2)
http://code.google.com/p/e4xu/source...vxvws/lcbridge
(AS3)
Бинарники и документация:
http://e4xu.googlecode.com/files/avm1bridge.zip
Планы:
- Сделать SWC для Flash IDE.
- Добавить лоадер, который можно использовать в MXML.
Пример использования:
package { import flash.display.Sprite; import flash.net.URLRequest; import org.wvxvws.lcbridge.AVM1Command; import org.wvxvws.lcbridge.AVM1Event; import org.wvxvws.lcbridge.AVM1Loader; import org.wvxvws.lcbridge.AVM1Protocol; public class AVM1Test extends Sprite { //-------------------------------------------------------------------------- // // Private properties // //-------------------------------------------------------------------------- private var _loader:AVM1Loader = new AVM1Loader(); //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- public function AVM1Test() { super(); _loader.load(new URLRequest("foo.swf")); _loader.addEventListener(AVM1Event.LC_COMMAND, commandHandler); _loader.addEventListener(AVM1Event.LC_CUSTOM, commandHandler); _loader.addEventListener(AVM1Event.LC_DISCONNECT, commandHandler); _loader.addEventListener(AVM1Event.LC_ERROR, commandHandler); _loader.addEventListener(AVM1Event.LC_LOADED, commandHandler); _loader.addEventListener(AVM1Event.LC_READY, commandHandler); _loader.addEventListener(AVM1Event.LC_RECEIVED, commandHandler); _loader.addEventListener(AVM1Event.LC_RECONNECT, commandHandler); addChild(_loader); } //-------------------------------------------------------------------------- // // Private methods // //-------------------------------------------------------------------------- private function commandHandler(event:AVM1Event):void { trace("--------------", event.type); if (event.type == AVM1Event.LC_LOADED) { _loader.connection.sendCommand( new AVM1Command(AVM1Command.CALL_METHOD, AVM1Protocol.CONTENT, "createTextField", null, null, ["_txt", 1, 10, 10, 100, 100])); _loader.connection.sendCommand( new AVM1Command(AVM1Command.SET_PROPERTY, "_loaderContent._txt", null, "text", "Hello World!")); } } } }
Всего комментариев 4
Комментарии
19.07.2010 12:34 | |
Попробовал использовать твою библиотеку - возникли некоторые проблемы.
подгружаемый AS2 клип (далее as2Loader.swf) грузит в себя ещё кучу разных swf и жёстко не по человечески обходится с _root и _global и если грузить его через AVM1Loader - плеер тупо виснет. Скорей всего это связяано с прокси флэшкой bridge.swf и проблемами с _root/_global, т.к. если грузить as2Loader.swf через обычный Loader - всё в порядке. Доступ к исходникам as2Loader.swf - есть, соответственно вопрос - как использовать твою библиотеку без прокси(bridge.swf) - т.е. LocalConnection хочу определить явно в as2Loader.swf. |
|
Обновил(-а) Котяра 19.07.2010 в 12:36
|
25.10.2010 20:06 | |
ну если что-то будет грузиться в рут в ас2 флэшке(loadMovie), то она затрет все определения в ней(в руте), если я не ошибаюсь
|
26.10.2010 11:59 | |
собственно, уже почти
Убрал прокси, но баг всё равно вылезает в дебажной версии. флэш тупо виснет напрочь. В релизной всё ок. Забил пока, т.к. шайтан. |
|
Обновил(-а) Котяра 26.10.2010 в 12:01
|
Последние записи от wvxvw
- Dired - текстовый проводник по файловой системе (29.06.2013)
- Навигация по HTML с WASD (09.06.2012)
- JavaScript, все не так плохо (07.06.2012)
- Что такое tarball и чем его пакуют (11.04.2012)
- Критика Presentation Model (18.02.2012)