0

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

这是我的问题:

我需要一种方法来阅读 Flash 框架内的 pdf。

我找到了一种可能的解决方案,将 pdf 转换为 swfFlashPaper 2 现在我想知道如何将 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.x并且loader.y它有效。

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


解决方案:

我在这个页面找到了一个可能的解决方案。这个想法是仅在加载过程完成后
更改比例(甚至可以在之前完成定位)。 无论如何我不得不使用这个项目,因为转换后不能正常工作,我不知道为什么......swf
Actionscript 2FlashPaperpdfAS3

这里的代码:

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

1 回答 1

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
}
于 2012-10-02T11:39:09.150 回答