Flash中flash包、fl包和mx包的区别
??
http://blog.csdn.net/peterpeng881003/article/details/7221088 1、flash包是FlashPlayer的核心,fl包和mx包都是扩展自flash包 ----------------------- 在flex中导入fl包http://www.voidcn.com/article/p-uchfwext-bge.html flash包与fl包有什么不同?
flash包与fl包到底有什么区别呢?简单的说就是flash是Flash Player核心的库,不管在Flash中还是FD、FB中,都可以用;而fl是专门用于Flash中的一个组件库。虽然fl包下很多包名是跟flash 包下一样的,但却不是相同的,大致可将前者看作是后者的一个扩展。就跟Flex中的mx包是专门用于FB作为flash核心类的扩展一个道理。
网上经常可以看到说flash导出的动态连接库无法直接在Flex中用,确实是这样吗?既然flash包是Flash Player核心的库,而动态链接库的类一般都继承MovieClip或Sprite、BitmapData之类的,所以当然可以跟用Flex下的这些类的子类一样去用这些导出类。只是要注意的一点是:MC和Sprite等不是继承自UIcomponent类的组件不可以直接addChild进Flex 中,要用UIcomponent转化一下。 那我们如果要在FB中用到fl包,应该怎么办呢?很简单,在Flash中将fl包发布为一个swc组件即可跟核心包一样在FB下利用了,并且代码智能提示一样不少。在FD中也可用这个方法,另外FD中还可:复制FlashDevelopLibraryAS3frameworksFlashIDE下面的fl包到FlashDevelopLibraryAS3intrinsicFP10或FP9下,重启FD就可看到这时已经有fl包的智能提示了。 ----------------------- http://xlh1221it.blog.163.com/blog/static/129587224201092665658660/ ?解决了如何在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包的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |