Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Загрузка swf Flex в другой Flex (http://www.flasher.ru/forum/showthread.php?t=151539)

JekaB 01.03.2011 13:39

Загрузка swf Flex в другой Flex
 
Здравствуйте

У меня такая проблема, я пытаюсь загрузить файл swf который есть Flex файлом в другом Flex проекте:

Код AS3:

private function LoadChildSWF(url:String):void 
{ 
        trace("LoadChildSWF:", url);
        var swfURL:URLRequest = new URLRequest(url);
        SwfLoader = new FlexLoader();
        SwfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
        SwfLoader.load(swfURL);
};

и потом:

Код AS3:

private function onLoadComplete(evt:Event):void
{
        trace('onLoadComplete');
        addChild(SwfLoader.content);
}

Я получаю ошибку в "addChild(SwfLoader.content)" такого рода:
TypeError: Error #1034: Type Coercion failed: cannot convert ..._mx_core_FlexModuleFactory@82761f1 to mx.core.IUIComponent.
Пытался также загружать с помощью Loader ( вместо FlexLoader ), ошибка идентична
Как нужно правильно загрузть Flex swf в свой Flex проект

wvxvw 01.03.2011 14:39

Так FlexLoader - это же тот же самый Loader только ему toString() переопределили... Для простоты - используйте SWFLoader, но можно в приниципе и обычным лоадером, только вам нужно будет дождаться загрузки второго фрейма, найти класс Application в этом втором фрейме, и уже его добавлять в список отображения. Разбираться в этом месиве дело неблагодарное, так что я бы использовал SWFLoader.
И не называйте переменный с прописной - вас так никто не поймет.

JekaB 01.03.2011 15:04

Если я буду использовать SWFLoader вместо Loader'a то тогда результат swfLoader.content будет равен null и обработчик onLoadComplete не вызветься.

Johny_86 01.03.2011 17:11

Во флексе ты не добавишь addchild просто так. Создай там:
Код AS3:

<mx:UIComponent id="uic"/>

А потом в коде сможешь добавлять так: uic.addChild();

JekaB 01.03.2011 18:38

Спасибо, вроде как помогло. Только зделал я так:

Код AS3:

private var uic:UIComponent = new UIComponent();


Johny_86 01.03.2011 18:46

Один фиг )) Ты из кода создал, а я тебе написал как тегом создать. Суть одна.

JekaB 01.03.2011 19:23

А может кто знает как загруженый Flex можна использовать, как его запустить, чтоб он отображался


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

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