繁体   English   中英

将外部SWF文件(FlashPaper pdf)加载到Flash项目中

[英]load an external swf (FlashPaper pdf) into a flash project

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

这是我的问题:

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

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

阅读一些动作脚本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根本无法加载)


解:

我在此页面上找到了可能的解决方案。
想法是仅在加载过程完成后才更改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);

您可以使用scaleX和scaleY属性修改加载程序的大小。 保持它们相等,这样就不会拉伸瑞士法郎。

您可能还想听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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM