`
it_liuyong
  • 浏览: 97773 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

flex 自定义多个命名空间以及标签名

    博客分类:
  • flex
阅读更多
flex 自定义多个命名空间以及标签名 

2012-06-11 14:41:46|  分类: flex |  标签:flex  自定义  namespace  标签库  命名空间   |字号 订阅





1.建立起自定定义一些 控件 eg

MyButton,MyTextInput



2.在Lib包  新增xml到src目录下

ss-mainfest.xml //存放在 ss标签库命名空间 控件

<?xml version="1.0" encoding="UTF-8"?>
<componentPackage>
<component id="MyButton" class="com.sarsea.components.MyButton"/>
</componentPackage>
ss2-mainfest.xml //存放在 ss2标签库命名空间的控件
<?xml version="1.0" encoding="UTF-8"?>
<componentPackage>
<component id="MyTextInputOtherName" class="com.sarsea.components.MyTextInput"/>
</componentPackage>

这边顺便说下  一个控件可以放到N个命名空间,id属性 不一定要跟类名一样,id属性只是一个别名,用法例如:
<ss2:MyTextInputOtherName/>

3.右键项目属性=》flex库编译器


这样的选择 只能支持单个命名控件 ,要支持做个 可以编辑
.flexLibProperties文件(此文件就是项目目录下 跟src 同级别的  看不到的话 看后文)



 
<namespaceManifests>
    <namespaceManifestEntry manifest="ss-manifest.xml" namespace="http://www.sarsea.com/2012/flex"/>
</namespaceManifests>
改成
<namespaceManifests>
    <namespaceManifestEntry manifest="ss-manifest.xml" namespace="http://www.sarsea.com/2012/flex"/>
    <namespaceManifestEntry manifest="ss2-manifest.xml"    namespace="http://www.sarsea.com/2012/flex2"/>
</namespaceManifests>
这样就多加了一个命名空间
=======================================自定义标签库名=====================================
在src目录下新增一个design.xml文件,然后右键项目属性=》flex库构建路径=》资源=》把design.xml打钩 就ok了
或者到.flexLibProperties 里面手动添加
  <includeResources>
    <resourceEntry destPath="design.xml" sourcePath="design.xml"/>
    <resourceEntry destPath="com/sarsea/components/button.png" sourcePath="com/sarsea/components/button.png"/>
  </includeResources>

design.xml
<?xml version="1.0" encoding="utf8"?>
<design version="2">
   <namespaces>
     <namespace prefix="ss" uri="http://www.sarsea.com/2012/flex"/>
     <namespace prefix="ss2" uri="http://www.sarsea.com/2012/flex2"/>
   </namespaces>
   <categories>
       <category id="myControls" label="Sarsea组件" defaultExpand="true"/>
       <category id="myControls2" label="Sarsea组件2" defaultExpand="true"/>
   </categories>
   
   <components>
  <component id="MyButton"
       name="com.sarsea.components.MyButton"
       category="myControls">
  </component>
  <!--displayName  设计栏 控件的显示名字 -->
  <component id="MyTextInpust"
     displayName="MyTextInputControlName"
       name="com.sarsea.components.MyTextInput"
       category="myControls2">
  </component>
   </components>
</design>




这边总共分三个大的子节点:
<1>.namespace 这个就是用来管理标签库的命名的啦  其中uri一定要跟.flexLibProperties里面的 一一对应


2跟3的节点 是用来管理 控件 在设计栏  的显示

<2>.catogory管理控件的 类别控件夹


id:是一个唯一的标示 在 3的节点 有应用到
label:文件夹名字
defaultExpand:是否默认打开该 类别控件夹
另外:可能看到图中的MyButton的图标显示不一样  其实 是在 类文件里面设置的
package com.sarsea.components
{
import mx.controls.Button;


/**
  *
  * @author Hugo.Wang
  * 2012-6-11 10:32:45
  */
[IconFile("button.png")]//图片在 设计栏的 自定义控件栏显示
public class MyButton extends Button
{
  public function MyButton()
  {
   super();
  }
}
}

<3>.components 节点
id:也是一个唯一标示而已,貌似没啥用
name:就是控件类的具体位置 (这个一定要跟mainfest里面的class属性对应)
displayName:就是设计栏 控件的显示名字
cotegory:指定控件在哪个 类别控件夹里面

=====================================后续=============================================
(1)除去 过滤.flexLibProperties文件
点击



不要过滤的文件的钩钩 去掉 确定就ok了
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics