Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > e4xu

Всякие разные штуки сомнительной полезности сделанные в свободное от работы время.
Рейтинг: 4.00. Голосов: 2.

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.

Пример использования:
Код AS3:
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 cleptoman вне форума
cleptoman
 
Аватар для cleptoman
ну если что-то будет грузиться в рут в ас2 флэшке(loadMovie), то она затрет все определения в ней(в руте), если я не ошибаюсь
Старый 26.10.2010 11:59 Котяра вне форума
Котяра
 
Аватар для Котяра
собственно, уже почти полгода 3 месяца прошло..
Убрал прокси, но баг всё равно вылезает в дебажной версии. флэш тупо виснет напрочь. В релизной всё ок. Забил пока, т.к. шайтан.
Обновил(-а) Котяра 26.10.2010 в 12:01
Старый 26.10.2010 16:23 cleptoman вне форума
cleptoman
 
Аватар для cleptoman
делал я подобную связку ( AVM1 у меня отвечал за проигрывание мп3 потока из айскасат (потому как AVM2 икать начинал на переходах между треками, а потом и вовсе умирал), а AVM2 отвечал за визуальные штуки и управление проигрыванием).

так вот тож заметил, что в релизе глюков нет, а в дебаге глюки..переложил все это дело на глюки LocalConnection в дебаге и успокоился ) (может какя секьюрность не дает ему работать как надо, не вникал)
 

 


Часовой пояс GMT +4, время: 01:18.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.