博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flex自定义组件
阅读量:4198 次
发布时间:2019-05-26

本文共 2522 字,大约阅读时间需要 8 分钟。

使用MXML标签定义

主文件Main1.mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:MyComp="*" layout="vertical">
  <mx:Style>
    Application{fontSize:14px;}
  </mx:Style>
  <MyComp:MyComp1/>
</mx:Application>

注:xmlns:MyComp="*"自定义命名空间其实很类似于包的概念用来管理组件的。实际当中最好把自己的组件文件分文件夹管理。
组件定义MyComp1.mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
  <mx:Script>
    <![CDATA[
      import mx.controls.ComboBox;
      import mx.controls.Alert;
      import mx.events.DropdownEvent;
      private function closeHandler(event:DropdownEvent):void
      {
        //Alert.show((event.currentTarget as ComboBox).selectedLabel);
        Alert.show((event.currentTarget as ComboBox).selectedItem.toString());
      }
    ]]>
  </mx:Script>
  <mx:Label text="城市:" />
        <mx:ComboBox close="closeHandler(event);">
                <mx:dataProvider>        
                        <mx:String>济南</mx:String>
                        <mx:String>威海</mx:String>
                        <mx:String>烟台</mx:String>
                </mx:dataProvider>
        </mx:ComboBox>  
</mx:HBox>

注:组件的文件名就对应着将来使用时的mxml标签名,根标签就是你用来扩展的父类,这里是HBox。在里面this引用的是你的组件类。

使用AS3定义

组件定义MyComp2.as

package mycomp
{
  import flash.events.KeyboardEvent;
  
  import mx.controls.TextArea;
  public class MyComp2 extends TextArea
  {
    public function MyComp2()
    {
      super();
      addEventListener(KeyboardEvent.KEY_DOWN,handleKeyDown);
    }
    private function handleKeyDown(evt:KeyboardEvent):void
    {
      if(evt.ctrlKey && evt.keyCode==90)
      text="";
    }
    
  }
}

注意类名和文件名同,同时包结构也要和目录结构一致。
扩展了TextArea添加了一个事件处理,用户按Ctrl+Z时会清空文本框。
主文件Main2.mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:MyComp="mycomp.*" layout="vertical">
  <mx:Style>
    MyComp2{fontSize:14px;}
  </mx:Style>
  <MyComp:MyComp2 id="myTxt" color="#008800" text="这是一段测试用的文本..." />
</mx:Application>

注意名字空间mycomp.*这里很像import mycomp.*;呵呵。

 

注:

我们也可以不改变名字,人采用原来的,如下TextArea.as:

主文件:

<?
xml
version
="1.0"
encoding
="utf-8"
?>
<
mx:Application
xmlns:mx
="http://www.adobe.com/2006/mxml"
xmlns:MyComp
="mycomp.*"
layout
="vertical"
>
  
<
mx:Style
>
    TextArea{fontSize:14px;}
  
</
mx:Style
>
  
<
MyComp:TextArea
id
="myTxt"
color
="#008800"
text
="这是一段测试用的文本..."
/>
  
<
mx:TextArea
text
="这是系统默认的文本框"
/>
</
mx:Application
>

 

转载地址:http://qibli.baihongyu.com/

你可能感兴趣的文章
jquery 向上(顶部),向下(底部)滑动
查看>>
seo
查看>>
10个出色的NoSQL数据库
查看>>
MySQL: InnoDB 还是 MyISAM?
查看>>
MySQL性能优化的最佳20+条经验
查看>>
SQL语言的组成部分 ddl dcl dml
查看>>
mysql数据库从库同步延迟的问题
查看>>
1.mysql数据库主从复制部署笔记
查看>>
mysql数据库主从同步的问题解决方法
查看>>
mysql 配置 - on xFanxcy.com
查看>>
MySQL数据库高并发优化配置
查看>>
mysql一: 索引优化
查看>>
测试人员,今天再不懂BDD就晚了!
查看>>
35岁后还被职场青睐的人,都做了这几件事
查看>>
全链路压测那点事(一)
查看>>
阿里巴巴开源性能监控神器Arthas初体验
查看>>
使用猴子测试工具(7)
查看>>
使用猴子测试工具(8)
查看>>
一个简单的猴子测试小工具
查看>>
是QA还是AQ?
查看>>