(百分跪求高手)flex用swfLoader装载flash4做的swf文件后,找不到库里的类定义
开发工具 Flex 3.0 SDK 3.5.0 Flash 4.0
装载SWF文件
var loader:SWFLoader = new SWFLoader();
loader.addEventListener(Event.COMPLETE, SwfLoadCompleted);
loader.load("file.swf");
// 提取swf文件库中类
var c:Class = loader.loaderInfo.applicationDomain.getDefinition("menu_Bar") as Class;
报异常提示
ReferenceError: Error #1065: 变量 menu_Bar 未定义。
at flash.system::ApplicationDomain/getDefinition()
[解决办法]
var context:LoaderContext = new LoaderContext();
context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
loader.load("file.swf", context);
[解决办法]
在SwfLoadCompleted函数里面写
var loader:SWFLoader = event.target as SWFLoader;
var application:Application = loader.content["application"] as Application;
var menu_Bar:* = application["menu_Bar"];
如果再想得到Class类型的信息
可以用 var c:Class = ObjectUtil.getClassInfo(menu_Bar);
注:
最上面三行代码中,如果代码严密写的话,要判断中间变量是否为null,和application.hasOwnProperty(["menu_Bar")之类的判断否再去获取