`
jinxinhero
  • 浏览: 26260 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

创建标准的flex库项目

阅读更多


创建标准的flex库项目

所谓”标准“是指

  • 使用命名空间方式来引入组件标签。
  • 引入命名空间时,前缀有默认值,如在flex3中组件的前缀基本为mx。

达到的效果


 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
				layout="absolute"
				minWidth="955"
				minHeight="600"
				xmlns:jx="http://jx.founder.com/2010/flex">
	<mx:Script>
		<![CDATA[
			import jx.components.MyCheckBox;

			private function init():void {
				var c:MyCheckBox;
			}
		]]>
	</mx:Script>
	<jx:MyButton/>
</mx:Application>
 

 

MyButton是我自定义的一个组件。当我以mxml标签方式使用该组件时,flashBuilder会自动帮我引入命名空间并给出前缀(xmlns:jx="http://jx.founder.com/2010/flex")。

第一步,创建库项目

没什么好说的。

第二步,创建一个名为MyButton的自定义组件,代码如下:

 

package jx.components {
	import mx.controls.Button;

	[IconFile("MyButton.png")]
	public class MyButton extends Button {
		public function MyButton() {
			super();
			this.label = "测试";
		}
	}
}
 

 

第三步,src目录下创建一个xml,取名为jx-manifest.xml。

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<componentPackage>
	<component id="MyButton" class="jx.components.MyButton"/>
</componentPackage>

 

 

 

这是一个清单文件。它的作用像一个对照表,它把组件名和它实际的类全名对应起来。

这里的id属性指定是的就是组件名。组件名可以与类名完全没有关系,比如你可以把MyButton换成TestBtn。TestBtn相当于给jx.components.MyButton起了个别名,以后在程序中就可以使用TestBtn来引用该类了。

 

第四步,创建xml,名为design.xml,放在src目录下。该文件内容如下:

<?xml version="1.0" encoding="utf8"?>
<design version="2">
   <namespaces>
     <namespace prefix="jx" uri="http://jx.founder.com/2010/flex"/>
   </namespaces>

   <categories>
       <category id="myControls" label="我的组件" defaultExpand="true"/>
   </categories>
    
   <components>

		<component id="jx.components.MyButton"
				   name="jx.components.MyButton" 
				   namespace="jx" 
				   category="myControls">
		</component>
   </components>
</design>
 

design.xml是一个设计辅助文件。flashbuilder通过它实现,为标签指定默认前缀,为组件分类等功能。

<category id="myControls" label="我的组件" defaultExpand="true"/>这句,定义设计视图组件面板文件夹分类,label指定在组件面板里的文件夹显示名称,如下图所示:

 


 

在库项目属性面板里找到资源选项卡,把刚才的两个xml文件勾选上。



 

最终的文件结构如下图:




 


第五步 配置项目属性

指定命名空间Namespace URI

指定清单文件Manifest file

如图



 

至此,标准库项目创建完成。


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
				layout="absolute"
				minWidth="955"
				minHeight="600"
				xmlns:jx="http://jx.founder.com/2010/flex">
	<mx:Script>
		<![CDATA[
			import jx.components.MyCheckBox;

			private function init():void {
				var c:MyCheckBox;
			}
		]]>
	</mx:Script>
	<jx:MyButton/>
</mx:Application>

 

 

 

 

特别注意:

一、在实践中发现一个缺点:通过上述方式创建库项目后,在使用时,那些通过清单文件定义的组件可以在编写mxml正确提示(如:MyButton),但MyCheckBox由于没有在清单文件中描述,在写mxml标签时就不会自动提示了。但代码方式是可以引用到的。因此,应该将可以用标签方式定义的组件都配置在清单文件中。

二、两个xml配置文件,如果能使用ant自动生成,效果可以会更好。限于能力,就不实现了。

源码:mylib.zip

 

RIAMeeting-苏州FLEX(34558988)  matt 给予了很大的帮助,在此表示感谢 。

  • 大小: 70.6 KB
  • 大小: 13.5 KB
  • 大小: 93.8 KB
  • 大小: 17.2 KB
分享到:
评论
5 楼 zwnJava 2011-06-17  
写了一遍,还真不错呵呵
4 楼 yanql 2011-06-15  
写得挺详细的,受教了
3 楼 632408004 2011-06-10  
上次没研究完,可以接着你的继续搞下去了。
2 楼 zwnJava 2011-06-10  
顶!
flex3 中有span 吗?
1 楼 critor 2011-06-10  
写的不错啊,楼主很用心,加油!

相关推荐

Global site tag (gtag.js) - Google Analytics