http://twaver.servasoft.com/twaver-flex/flex%E4%B8%AD%E5%8A%A0%E8%BD%BDswf%E5%8F%8A%E6%95%B0%E6%8D%AE%E4%BA%A4%E4%BA%92.html
Flex中加载SWF及数据交互
zht 发表于 2011年04月15日 | 阅读 3,165 | 评论 1
TWaver Flex, UI开发 , swf加载, swf数据交互
模块化开发过程中,有些客户可能会将各个功能模块分别创建成一个子swf,然后有一个主程序分别进行加载显示和数据交互
这个过程包含两个主要步骤
1、加载swf
加载swf比较简单,只需要通过SWFLoader的load方法加载进来即可
1 loader.load("SWFLoadedDemo.swf");
2、主程序和子swf之间的数据交互
这个可以通过以下代码实现
1 var obj:Object=SystemManager(loader.content).application;
2 tree.dataBox=obj.getBox();
有一个问题需要注意的是,通常情况下,我们都会添加以下事件进行数据加载
1 loader.addEventListener(Event.COMPLETE, function(ev:Event):void
2 {
3 loadSWF(ex);
4 });
当swf加载完成接着就取数据,这样是不行的,因为swf不光有一个load的过程还有一个创建的过程
如果这么写的话会报null指针异常,
解决方法如下,通过监听FlexEvent.APPLICATION_COMPLETE进行处理,swf创建结束以后再进行数据交互
1 loader.addEventListener(Event.COMPLETE, function(ev:Event):void
2 {
3 var loadedSM:SystemManager=SystemManager(loader.content);
4 loadedSM.addEventListener(FlexEvent.APPLICATION_COMPLETE, function(ex:Event):void
5 {
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余4页未读,立即下载