2012-10-02 2 views
0

Мне нужно сделать очень простое приложение swf, которое может отображать серию файлов pdf. На самом деле мне удалось создать на одном слое интерфейс меню (некоторые кнопки на фрейме 0, которые перенаправляют пользователя на другие рамки, где должен быть показан pdf-файл).загрузить внешнюю swf (FlashPaper pdf) в Flash-проект

Вот мой вопрос:

Мне нужен способ, чтобы прочитать PDF внутри кадра флэш.

Я нашел возможное решение для преобразования pdf в swf с FlashPaper 2 Теперь я хочу знать, как импортировать swf в фрейм.

Чтения некоторого ActionScript 3 руководства я был в состоянии создать контейнер мувиклип (простой прямоугольник), в которую я загрузил файл SWF с этим кодом:

var swf:MovieClip; 
var loader:Loader = new Loader(); 
var defaultSWF:URLRequest = new URLRequest("test.swf"); //test.swf is my converted pdf 
loader.load(defaultSWF); 

screen_01.addChild(loader); //screen_01 is the container rectangle converted to movieclip 

Я использовал контейнер мувиклип означает сохранение другие объекты (кнопки меню) на кадре, и это помогает с позиционированием swf.
Я видел, что можно использовать loader.x и loader.y и он работает.

К сожалению, я не был в состоянии контролировать ширину и высоту файла SWF/PDF (loader.width и loader.height существует, но если используется причина в швейцарских франков не будет загружен на всех)


Решение:

Я нашел возможное решение на уровне this page.
Идея состоит в том, чтобы изменить масштаб swf только после завершения процесса загрузки (позиционирование можно выполнить и раньше).
Во всяком случае я должен был использовать Actionscript 2 для этого проекта, потому что FlashPaper преобразованного pdf не работает должным образом с AS3, я не знаю, почему ...

здесь код:

//insert an emplty movieclip to load the swf, I've called it screen_01 

var movLoad:MovieClipLoader = new MovieClipLoader(); 
var myListener:Object = new Object(); 

myListener.onLoadInit = function(thisMc:MovieClip) { 

    thisMc._height = 600; 
    thisMc._width = 900; 
    thisMc._x = 50; 
    thisMc._y = 30; 
}; 

movLoad.addListener(myListener); 

movLoad.loadClip("folder/flashpaper_converted_pdf.swf.swf",screen_01); 

ответ

0

Вы можете изменить размер загрузчика с использованием свойств scaleX и scaleY. Держите их равными, поэтому swf не растягивается.

Вы также можете слушать COMPLETE события, чтобы сделать такую ​​вещь:

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 

function onComplete(e:Event) 
{ 
    var loader:Loader = e.currentTarget.loader; 

    loader.scaleX = loader.scaleY = 2; //Double the size of the loaded swf 
} 
+0

Да, вы должны быть правы (я нашел другое решение, но я буду проверить ваш на моем следующем проекте). В любом случае проблема была в сроках загрузки. Координаты положения можно установить перед загрузкой swf, но масштабирование должно быть выполнено после завершения загрузки. – Mave751

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