Flex:如何访问导入的 swf 中的影片剪辑

发布于 2024-08-31 09:41:54 字数 1107 浏览 5 评论 0原文

我已将 swf(不是用 Flex 创建的,即非框架)导入到 Flex 应用程序中。加载后,我想访问导入的 swf 中的影片剪辑。查看 Adob​​e 的文档 (http://livedocs.adobe .com/flex/3/html/help.html?content=controls_15.html),看起来很简单;但是,它们的示例是在 Flex 应用程序和导入的 swf(使用 Flex 创建的)之间。

就像他们的例子一样,我尝试使用 SystemManager 来访问导入的 swf 的内容;但是,我收到以下错误:

TypeError:错误 #1034:类型强制失败:无法将 flash.display::MovieClip@58ca241 转换为 mx.managers.SystemManager。

是发生此错误是因为我将非框架 swf 导入到框架 swf 中吗?预先感谢您的任何帮助。

代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:SWFLoader source="assets/test.swf"  id="loader"  creationComplete="swfLoaded()" /> 

<mx:Script>
 <![CDATA[

  import mx.managers.SystemManager;

  [Bindable]
        public var loadedSM:SystemManager;


  private function swfLoaded():void 
  { 
   loadedSM = SystemManager(loader.content);
  } 
 ]]>


</mx:Script>
</mx:Application>

I have imported a swf (not created with Flex, i.e. non-framework) into a Flex application. Once loaded, I would like to access movieclips within that imported swf. Looking at Adobe's docs (http://livedocs.adobe.com/flex/3/html/help.html?content=controls_15.html), it seems straightforward; however, their examples are between a Flex app and an imported swf (created with Flex).

Like their example, I'm trying to use the SystemManager to access the imported swf's content; however, I receive the following error:

TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::MovieClip@58ca241 to mx.managers.SystemManager.

Is this error occurring because I'm importing a non-framework swf into a framework swf? Thanks in advance for any assistance.

Code:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:SWFLoader source="assets/test.swf"  id="loader"  creationComplete="swfLoaded()" /> 

<mx:Script>
 <![CDATA[

  import mx.managers.SystemManager;

  [Bindable]
        public var loadedSM:SystemManager;


  private function swfLoaded():void 
  { 
   loadedSM = SystemManager(loader.content);
  } 
 ]]>


</mx:Script>
</mx:Application>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

守不住的情 2024-09-07 09:41:54

test.swf 是使用早期 AS 版本创建的吗?根据 为 AS 1.0 发布的 swf /2.0 在与 AS 3 不同的 AS 虚拟机中运行。

父 AVM2 SWF 文件不会有
访问属性、方法或
加载的 AVM1Movie 的对象
对象。

Was test.swf created with an earlier AS version? According to this swfs published for AS 1.0/2.0 runs in a different AS virtual machine than AS 3.

The parent AVM2 SWF file will not have
access to the properties, methods, or
objects of the loaded AVM1Movie
object.

初与友歌 2024-09-07 09:41:54

您可以使用它们的实例名称直接访问它们。

private function swfLoaded():void {
    var clip1:MovieClip = MovieClip(loader.content.myClip1);
    var clip2:MovieClip = MovieClip(loader.content.myClip2);
    // ...
}

You can access them directly, using their instance names.

private function swfLoaded():void {
    var clip1:MovieClip = MovieClip(loader.content.myClip1);
    var clip2:MovieClip = MovieClip(loader.content.myClip2);
    // ...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文