我已将swf(不是使用Flex创建,即非框架)导入Flex应用程序。加载后,我想访问该导入的swf中的movieclips。看看Adobe的文档(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>
答案 0 :(得分:0)
是否使用早期的AS版本创建了test.swf?根据{{3}}发布的针对AS 1.0 / 2.0的swfs在与AS 3不同的AS虚拟机中运行。
父AVM2 SWF文件不会有 访问属性,方法或 加载的AVM1Movie的对象 对象
答案 1 :(得分:0)
您可以使用实例名称直接访问它们。
private function swfLoaded():void {
var clip1:MovieClip = MovieClip(loader.content.myClip1);
var clip2:MovieClip = MovieClip(loader.content.myClip2);
// ...
}