注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

金融IT小鸿的博客

致力于金融IT行业

 
 
 

日志

 
 
关于我

Organize the world's information I care about and share it with other people! Change the Financial Industry through Information Technology! 爱互联网,爱金融, 爱分享,爱运动, 也爱偶尔胡思乱想! 我是金融IT小鸿

网易考拉推荐

Flash中flash包、fl包和mx包的区别  

2010-10-26 19:29:21|  分类: AS & Flex |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
        解决了如何在ActionScript工程中使用fl包中的UI组件问题后,我就想为啥不能使用Flex mx包中的UI组件呢!mx包中提供的UI组件比fl包中的功能更强大。而且也在网上搜到了介绍如何在ActionScript项目中导入flex组件的方法。于是写了一个简单的测试代码试了一下,发现编译和运行的时候都不会报错,只是UI组件无法显示。

        测试代码如下:

package {
import flash.display.Sprite;
import mx.controls.Button;

public class TestFlexUI extends Sprite
{
public function TestFlexUI()
{
var btn:Button = new Button();
btn.label = "FLex UI";
btn.width = 200;
btn.height = 100;
addChild(btn);
}
}
}

随后想到以前在一个flex工程中,是不能直接添加Sprite类到显示列表的,必须先用UIComponent封装一下。
于是将代码改为:

package {
import mx.controls.Button;
import mx.core.UIComponent;

public class TestFlexUI extends UIComponent
{
public function TestFlexUI()
{
var btn:Button = new Button();
btn.label = "FLex UI";
btn.width = 200;
btn.height = 100;
addChild(btn);
}
}
}

        再运行的时候就会报“ No class registered for interface 'mx.styles::IStyleManager2'”这个错误。搜了一下,随后彻底死心了,在ActionScript项目中还真是不能使用mx包中的UI组件。

        Adobe官方论坛上有一个帖子讲述了这个问题,大致意思是说:你要使用mx包中像Button这样的UI组件都是从UIComponent中继承的,需要被其他的Flex类实例化和管理。如果非要使用会很麻烦,你需要一个实现了ISystemManager的容器来放你的UI组件,这样你需要修改好几十个类来实现这个接口。

        这也就解释了为何很多Flash游戏项目中做用户界面都要使用fl包,而没见过使用mx包的。最后我自己总结了一下这几个包的关系(就像中学时候经常总结课本知识一样):

1、flash包是FlashPlayer的核心,fl包和mx包都是扩展自flash包
2、fl包用于Flash CS,mx包用于Flex Builder
3、在所有项目中都能使用flash包
4、在纯ActionScript项目和Flash CS项目中不能使用mx包,准确点说是不能使用mx包中,与UIComponent有关的包。其他的包貌似可以使用,不过我也没有都测试过,看到有ActionScript类使用mx包里类库的。(有待进一步研究)
5、Flex项目中是可以有ActionScript文件和类的,这里面可以使用mx包
6、在ActionScript项目和Flex项目中可以使用fl包

  评论这张
 
阅读(3335)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017