创建标准的flex库项目
http://jinxinhero.iteye.com/blog/1075368
创建标准的flex库项目
所谓”标准“是指
?使用命名空间方式来引入组件标签。
?引入命名空间时,前缀有默认值,如在flex3中组件的前缀基本为mx。
达到的效果
Mxml代码 复制代码 收藏代码
1.<span style="font-size: small;"><?xml version="1.0" encoding="utf-8"?>
2.<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
3. layout="absolute"
4. minWidth="955"
5. minHeight="600"
6. xmlns:jx="http://jx.founder.com/2010/flex">
7. <mx:Script>
8. <![CDATA[
9. import jx.components.MyCheckBox;
10.
11. private function init():void {
12. var c:MyCheckBox;
13. }
14. ]]>
15. </mx:Script>
16. <jx:MyButton/>
17.</mx:Application>
18.</span>
MyButton是我自定义的一个组件。当我以mxml标签方式使用该组件时,flashBuilder会自动帮我引入命名空间并给出前缀(xmlns:jx="http://jx.founder.com/2010/flex")。
第一步,创建库项目
没什么好说的。
第二步,创建一个名为MyButton的自定义组件,代码如下:
Actionscript 3.0代码 复制代码 收藏代码
1.<span style="font-size: small;">package jx.components {
2. import mx.controls.Button;
3.
4. [IconFile("MyButton.png")]
5. public class MyButton extends Button {
6. public function MyButton() {
7. super();
8. this.label = "测试";
9. }
10. }
11.}</span>
第三步,src目录下创建一个xml,取名为jx-manifest.xml。
Xml代码 复制代码 收藏代码
1.<?xml version="1.0" encoding="UTF-8"?>
2.<componentPackage>
3. <component id="MyButton" encoding="utf8"?>
2.<design version="2">
3. <namespaces>
4. <namespace prefix="jx" uri="http://jx.founder.com/2010/flex"/>
5. </namespaces>
6.
7. <categories>
8. <category id="myControls" label="我的组件" defaultExpand="true"/>
9. </categories>
10.
11. <components>
12.
13. <component id="jx.components.MyButton"
14. name="jx.components.MyButton"
15. namespace="jx"
16. category="myControls">
17. </component>
18. </components>
19.</design>
design.xml是一个设计辅助文件。flashbuilder通过它实现,为标签指定默认前缀,为组件分类等功能。
<category id="myControls" label="我的组件" defaultExpand="true"/>这句,定义设计视图组件面板文件夹分类,label指定在组件面板里的文件夹显示名称,如下图所示:
在库项目属性面板里找到资源选项卡,把刚才的两个xml文件勾选上。
最终的文件结构如下图:
第五步 配置项目属性
指定命名空间Namespace URI
指定清单文件Manifest file
如图
至此,标准库项目创建完成。
Actionscript 3.0代码 复制代码 收藏代码
1.<?xml version="1.0" encoding="utf-8"?>
2.<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
3. layout="absolute"
4. minWidth="955"
5. minHeight="600"
6. xmlns:jx="http://jx.founder.com/2010/flex">
7. <mx:Script>
8. <![CDATA[
9. import jx.components.MyCheckBox;
10.
11. private function init():void {
12. var c:MyCheckBox;
13. }
14. ]]>
15. </mx:Script>
16. <jx:MyButton/>
17.</mx:Application>
特别注意:
一、在实践中发现一个缺点:通过上述方式创建库项目后,在使用时,那些通过清单文件定义的组件可以在编写mxml正确提示(如:MyButton),但MyCheckBox由于没有在清单文件中描述,在写mxml标签时就不会自动提示了。但代码方式是可以引用到的。因此,应该将可以用标签方式定义的组件都配置在清单文件中。
二、两个xml配置文件,如果能使用ant自动生成,效果可以会更好。限于能力,就不实现了。
源码:mylib.zip
RIAMeeting-苏州FLEX(34558988) matt 给予了很大的帮助,在此表示感谢 。