将外部swf(FlashPaper pdf)加载到flash项目中

时间:2012-10-02 10:25:53

标签: actionscript-3 pdf flash

我必须做一个非常简单的swf应用程序,它能够显示一系列pdf个文件。 实际上我能够在单个图层上创建菜单界面(第0帧上的一些按钮将用户重定向到应该显示pdf的其他框架)。

这是我的问题:

我需要一种方法来读取flash框架内的pdf。

我找到了一个可能的解决方案,将pdf转换为带有FlashPaper 2的swf 现在我想知道如何将swf导入到框架中。

阅读一些actionscript 3指南我能够创建一个容器movieclip(一个简单的矩形),我已经用这段代码加载了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.xloader.y,但它确实有用。

不幸的是我无法控制swf / pdf文件的宽度和高度(loader.widthloader.height存在但是如果使用则导致swf根本不会加载)


解决方案:

我在this page找到了一个可能的解决方案。
只有在加载过程完成后才能改变swf比例(甚至可以在之前进行定位) 无论如何,我必须使用Actionscript 2进行此项目,因为FlashPaper已转换pdfAS3无法正常工作,我不知道为什么......

这里是代码:

//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);

1 个答案:

答案 0 :(得分: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
}