Flex:如何访问导入的swf中的动画片段
我已经将swf(不是用Flex创建的,即非框架)导入到Flex应用程序中。一旦加载,我想在导入的swf中访问movieclip。看看Adobe的文档(http://livedocs.adobe.com/flex/3/html/help.html?content=controls_15.html),它看起来很直接;然而,他们的例子是在Flex应用程序和导入的swf(使用Flex创建的)之间进行的。Flex:如何访问导入的swf中的动画片段
就像他们的例子,我试图使用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>
当时test.swf与先前创建的AS版本?根据已公布的1.0/2.0运行在不同的虚拟机比为3
The parent AVM2 SWF file will not have access to the properties, methods, or objects of the loaded AVM1Movie object.
您可以直接访问它们,使用他们的实例名称this主权财富基金。
private function swfLoaded():void {
var clip1:MovieClip = MovieClip(loader.content.myClip1);
var clip2:MovieClip = MovieClip(loader.content.myClip2);
// ...
}
我尝试了以下...(请注意,movieclip /符号被命名为firstFloor,并且movieclip的实例被命名为“firstFloor_mc”,并且movieclip被导出为名为firstFloor的Class。 – squared 2010-05-06 20:22:09
1. var clip1:MovieClip = MovieClip(loader.content.firstFloor);错误:1119:通过静态类型flash.display:DisplayObject访问可能未定义的属性firstFloor
2. var clip1:MovieClip = MovieClip(loader.content.firstFloor_mc );错误:1119:通过带有静态类型的引用访问可能未定义的属性firstFloor flash.display:DisplayObject。 –
squared
2010-05-06 20:22:28
第二种方法是正确的,假定剪辑位于舞台的第一帧上,第二个错误消息是相同的作为第一个。复制/粘贴错误,或者你忘了保存文件,当你吨第二种风格呢? :) – 2010-05-06 22:03:46
它是在过去一年内用AS3创建的。 – squared 2010-05-06 19:03:57