分享

在flex中如何整合多个swf?

 quasiceo 2015-01-12
swf文件都是用flash生成的,其中有一个swf是菜单,其它swf都是点击菜单时所显示的页面,菜单的swf中使用了事件监听,如:aboutUs_mc.addEventListener("click",function (){dispatchEvent(new TextEvent("Switch",true,true,"aboutUs"));});用flex如何组合这些swf,使点击菜单时能显示相应的页面?


flash.display.Loader可以做到
将 SWF、JPEG、渐进式 JPEG、非动画 GIF 或 PNG 文件加载到此 Loader 对象的子对象中。如果加载 GIF 动画文件,将仅显示第一帧。由于 Loader 对象可以只包含一个子级,因此,发出后续 load() 请求将终止先前的请求,如果仍然存在未处理的请求,则会开始新的加载。 

加载到 Loader 对象中的 SWF 文件或图像会继承该 Loader 对象的父显示对象的位置、旋转和缩放属性。 

使用 unload() 方法可删除用此方法加载的影片或图像,或者取消正在进行中的加载操作。

在使用 load() 方法时,请考虑 Flash Player 或 Adobe AIR 的安全模型: 

您可以加载来自任何可访问源的内容。 
如果执行调用的 SWF 文件位于网络沙箱中并且要加载的文件是本地的,则不允许加载。 
如果加载的内容为 SWF 文件,那么除非可以通过调用加载的内容文件中的 Security.allowDomain() 方法来允许跨脚本排列,否则另一个安全沙箱中的 SWF 文件不能对它执行脚本操作。 
加载为 AVM1Movie 对象的 SWF 文件(用 ActionScript 1.0 或 2.0 编写的)不能对加载为 Sprite 或 MovieClip 对象的 SWF 文件(用 ActionScript 3.0 编写的)执行跨脚本操作。但是,可以使用 LocalConnection 类使这些文件能够互相通信。
如果加载的内容为图像,那么除非该 SWF 文件的域包含在该图像原始域的跨域策略文件中,否则安全沙箱之外的 SWF 文件无法访问其数据。
在只能与本地文件系统的内容交互的沙箱中的影片剪辑不能对只能与远程内容交互的沙箱中的影片剪辑使用脚本,反之亦然。 
可以在包含 SWF 内容的 HTML 页中设置 object 和 embed 标签的 allowNetworking 参数,防止 SWF 文件使用此方法。
但在 Apollo 运行时中,application 安全沙箱中的内容(使用 Apollo 应用程序安装的内容)不受这些安全限制的约束。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多