`
hsrong
  • 浏览: 36527 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用SWFLoader加载外部的SWF时发生强制转换类型失败的问题

    博客分类:
  • Flex
 
阅读更多
var swf : SWFLoader = new SWFLoader();
swf.source="test.swf";

如果loader进来的SWF文件用到RemoteObject,第一次load是没有问题的,但如果再load一次就提示错误:

TypeError: Error #1034: 强制转换类型失败:无法将 mx.messaging.messages::ErrorMessage@392f779 转换为 mx.messaging.messages.ErrorMessage。

解决方法:

var swf : SWFLoader = new SWFLoader();

var lc : LoaderContext = new LoaderContext();
lc.applicationDomain = ApplicationDomain.currentDomain;

swf.loaderContext = lc;

swf.source="test.swf";

SWFloader的loaderContext的说明如下:

LoaderContext 类提供多种选项,以使用 Loader 类来加载 SWF 文件和其它媒体。LoaderContext 类用作 Loader 类的 load() 和 loadBytes() 方法的 context 参数。


使用 Loader.load() 方法加载 SWF 文件时,需要做出两个决定:应将所加载的 SWF 文件放置到哪个安全域中,以及应放置到该安全域中的哪个应用程序域中? 有关这些选择的更多详细信息,请参阅 applicationDomain 和 securityDomain 属性。


使用 Loader.loadBytes() 方法加载 SWF 文件时,与使用 Loader.load() 时一样,也要选择应用程序域,但不必指定安全域,这是因为 Loader.loadBytes() 始终将其加载的 SWF 文件放置到执行加载的 SWF 文件的安全域。


如果是加载图像(JPEG、GIF 或 PNG)而不是 SWF 文件,则无需指定安全域或应用程序域,这是因为这些概念只对 SWF 有意义。此时您只需做出一个决定:是否需要以编程方式访问所加载图像的像素? 如果需要,请参阅 checkPolicyFile 属性。如果要在加载图像时应用解块,请使用 JPEGLoaderContext 类替代 LoaderContext 类。

分享到:
评论

相关推荐

    swfloader:swf加载器,用于在flex中加载swf文件。可用于组件模块化,加载然后反射得到相应类

    #swfloader加载器 用于在flex中缓存加载swf文件。 可用于组件模块化加载。加载完成的组件,下次加载可直接从SWFCache中根据url获取相应内容,避免重复加载 单个加载方式 var item:SWFItem = new SWFItem(); item.url...

    Flash课件制作教程-加载SWF文件

    2. **指定加载目标**:使用Loader的`load()`方法,指定要加载的SWF文件URL和数据类型。假设SWF文件与当前文件在同一目录下,代码如下: ```actionscript loader.load(new URLRequest("mySubFile.swf")); ``` 3. ...

    AS3 调用SWF类库

    在AS3(ActionScript 3)中,调用SWF类库是一项常见的任务,尤其在构建可重用组件、模块化开发或者加载外部资源时。本文将深入探讨如何使用AS3来加载和交互SWF类库,以及相关的重要知识点。 首先,让我们了解SWF是...

    AS3加载外部资源(资源管理器)

    2. **加载SWF**:SWF文件通常包含动画或组件,可以像加载图片一样使用`Loader`类加载。不过,SWF内容加载后可能需要访问其内部的符号或函数,这时可以使用`content`属性。 ```actionscript var swfLoader:Loader = ...

    多个swf的通讯

    - 两个SWF需要在同一个目录下或者Flex应用通过`SWFLoader`加载Flash SWF,以便它们可以在运行时互相通信。 **AS3的SWF之间通讯:** - AS3的SWF可以直接进行跨脚本通讯(Cross-Scripting),不需要`LocalConnection`...

    Flex ApplicationDomain

    此外,当我们使用SWFLoader加载外部SWF文件时,也可以指定其运行在特定的ApplicationDomain中,这样可以防止外部SWF文件中的类污染主应用程序的类库。 总结来说,Flex ApplicationDomain是AS3中的一个强大工具,它...

    flex加载flashpaper示例

    SWFLoader是Flex SDK提供的一种用于加载和显示SWF文件(包括由FlashPaper转换的文档)的组件。在Flex项目中,我们可以通过在.mxml或ActionScript代码中添加SWFLoader实例来实现这一功能。 以下是创建Flex加载...

    Flex在线阅读pdf工具swftools详解

    在Flex项目中,可以使用加载SWF文件的类,如`SWFLoader`,将转换后的SWF文档加载到Flex应用程序中。首先,创建一个`SWFLoader`实例,并设置其`source`属性为SWF文件的URL: ```actionscript var swfLoader:...

    Google3DMap

    5. **SWFLoader组件**:学习如何在Flex中使用SWFLoader加载外部SWF文件(如Google Earth插件),并实现与加载对象的交互。 6. **地理坐标系统和投影**:理解经纬度坐标系统,以及在2D和3D地图中进行坐标转换的方法...

    Delphi SWF

    标题“Delphi SWF”指的是使用Delphi编程环境与SWF(ShockWave Flash)技术结合的应用。在描述中提到了“DELPHI 使用FLASH控件”,这表明我们要讨论的是如何在Delphi中集成和利用Flash内容,特别是通过控件来实现。 ...

    Tree与SWFLOAD

    SWFLoader使得在运行时能够动态加载SWF文件,这在内容更新、资源管理或按需加载方面非常有用。 3. **动态加载图片**: 在"Tree与SWFLOAD"的应用场景中,SWFLoader被用来动态加载图片,这些图片可能存储在SWF文件中...

    Flash CS5从新手到高手视频教程下载第12章 测试和优化Flash作品.zip

    同时,了解如何使用SWFLoader组件加载外部SWF文件,以实现内容分块加载,可以显著提升用户体验。 最后,调试是解决问题的关键。教程会教授如何使用Flash Professional的内置调试工具,如ActionScript编译器错误和...

    SWFLoader源代码

    用来加载位图,需要将图片先导入FLASH,放在SWF类远见中。然后通过此类读取。

    C#播放Flash文件

    3. **编写代码**:在自定义控件中,使用SWFLoader的API来加载和播放SWF文件。 ```csharp using SWFLoader; public partial class FlashPlayerControl : UserControl { private SWFLoader.SWFLoader swfLoader; ...

    FLEX ActionScript3 游戏开发教程之 贪吃蛇 flashas3源代码.zip

    - **SWFLoader**:SWFLoader组件用于加载外部SWF文件,可以用于加载游戏资源,如背景图片、音效等。 - **进度条**:结合SWFLoader,创建加载进度条,提供更好的用户体验,显示资源加载状态。 5. **绘图技术** - ...

    flex3 cookbook 英文版pdf

    - **使用SWFLoader加载SWF文件**:说明如何在Flex应用中动态加载外部SWF文件,这对于集成多媒体内容非常有用。 - **为组件设置Tab索引**:解释如何设置组件的Tab索引,以改进键盘导航体验。 - **为控件设置标签...

    Flex 动态加载 Image 和 Icon 解决方案

    如果是矢量图形,你可能需要使用 `SWFLoader` 类来加载 SWF 文件,然后将其中的图形作为 Icon 使用。如果是位图 Icon,可以使用上述的 `Loader` 方法。此外,Flex 还提供了 `mx.controls.IconItem` 和 `mx.controls....

Global site tag (gtag.js) - Google Analytics