Flex自定义组件 之 使用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:
InBlock.gifpackage mycomp
InBlock.gif{
InBlock.gif  import mx.controls.TextArea;
InBlock.gif  import flash.events.KeyboardEvent;
InBlock.gif
   public  class TextArea extends mx.controls.TextArea
InBlock.gif  {
InBlock.gif     public function TextArea()
InBlock.gif    {
InBlock.gif      super();
InBlock.gif      addEventListener(KeyboardEvent.KEY_DOWN,handleKeyDown);
InBlock.gif    }
InBlock.gif     private function handleKeyDown(evt:KeyboardEvent): void
InBlock.gif    {
InBlock.gif       if(evt.ctrlKey && evt.keyCode==90)
InBlock.gif      text="";
InBlock.gif    }
InBlock.gif  }
InBlock.gif}


主文件:
<? 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 >



本文转自 xcf007 51CTO博客,原文链接: http://blog.51cto.com/xcf007/102438 ,如需转载请自行联系原作者

相关文章
|
开发者 容器
ArkUI框架,Flex布局,基础组件及封装,父子组件的双向绑定
Flex组件用于创建弹性布局,开发者可以通过Flex的接口创建容器组件,进而对容器内的其他元素进行弹性布局,例如:使三个元素在容器内水平居中,垂直等间隔分散。 例如:如下的布局代码分别表示:(垂直排列,水平居中,垂直居中)
331 0
ArkUI框架,Flex布局,基础组件及封装,父子组件的双向绑定
|
2月前
|
前端开发 容器
|
8月前
|
前端开发 容器
|
8月前
|
前端开发 小程序 容器
|
10月前
|
前端开发 容器
一篇文章带你掌握Flex布局的所有用法(上)
一篇文章带你掌握Flex布局的所有用法(上)
56 0
|
10月前
|
前端开发 容器
一篇文章带你掌握Flex布局的所有用法(下)
一篇文章带你掌握Flex布局的所有用法(下)
43 0
一篇文章带你掌握Flex布局的所有用法(下)
|
JavaScript 前端开发 开发者
在组件中使用 style 行内样式并封装样式对象|学习笔记
快速学习在组件中使用 style 行内样式并封装样式对象
148 0
在组件中使用 style 行内样式并封装样式对象|学习笔记
|
JavaScript
Vue中使用样式(class与内联样式)
Vue中使用样式(class与内联样式)
155 0
Vue中使用样式(class与内联样式)