首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

(百分跪求高手)flex用swfLoader装载flash4做的swf文件后,找不到库里的类定义,该如何处理

2012-02-09 
(百分跪求高手)flex用swfLoader装载flash4做的swf文件后,找不到库里的类定义开发工具 Flex 3.0SDK 3.5.0Fl

(百分跪求高手)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")之类的判断否再去获取

热点排行