Загрузите удаленные SWF-файлы в flex - PullRequest
0 голосов
/ 05 мая 2010

У меня есть SWFLoader в mxml моего flex-приложения.

<mx:SWFLoader id="swfPreview"
     width="100%" height="90%"  y="20" visible="false"/>

Теперь при нажатии кнопки я выполняю следующий код в скрипте действия.

swfPreview.addEventListener(Event.COMPLETE,loadComplete);
swfPreview.scaleContent = true;
swfPreview.load(url);

Где "url" - это URL-адрес SWF-файла в Интернете (этот домен может быть одинаковым или разным, в обоих случаях я сталкиваюсь с проблемами)

Теперь, на loadComplete, я делаю следующее:

private function loadComplete(event:Event):void
{
   Alert.show("Load complete");
   swfPreview.removeEventListener(Event.COMPLETE,loadComplete);
   swfPreview.visible = true;
}

Я получаю всплывающее окно с предупреждением (то есть вызывается loadComplete), но не загружается ни один swf-файл, который не может ничего просмотреть В чем может быть проблема, я что-то упускаю или какая-то проблема безопасности? Я также попробовал управление изображением, чтобы загрузить SWF. Более того, swf - это pdf файлы, конвертированные в swf, так что это может быть проблемой разной частоты кадров между flash и flex? Любая помощь будет оценена.

Спасибо

1 Ответ

0 голосов
/ 05 мая 2010

Я никогда специально не работал с SWFLoader, но, похоже, вы не добавляете загруженный объект на экран. Если SWFLoader ведет себя по крайней мере аналогично flash.display.Loader, вам нужно получить объект в Event.COMPLETE и добавить его на экран. Что-то вроде:

loader = new Loader();
var req:URLRequest = new URLRequest("http://example.com/your.swf");
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(req);

private function onComplete(e:Event):void {
    addChild(e.target.loader.content);
}

Для полного примера использования загрузчика вы можете проверить API проигрывателя Vimeo, который загружает их SWF-видеоплеер со своего сайта в ваше приложение:

http://www.vimeo.com/api/docs/moogaloop

...