`

继承FormItem实例

    博客分类:
  • Flex
阅读更多

/*******FromItemWithButton 类*******/

//自定义事件
[Event(name="doSomething", type="flash.events.Event")]

//定义样式,将css文件中的newButtonSkin样式应用到此自定义组件中
[Style(name="newButtonSkin", type="Class")]
public class FromItemWithButton extends FormItem{
    private var newButtonSkin:Class;
    private var newButton:Button;
    private var _newButtonLabel:String;
    private var _newButtonWidth:int = 40;
    private var _newButtonHeight:int = 25;
    private var _newButtonSpace:int = 10;
    public function FromItemWithButton(){
        super();
    }

    public function set newButtonLabel(value:String):void{
        _newButtonLabel = value;
    }

    public function set newButtonWidth(value:String):void{
        _newButtonWidth = value;
    }

    public function set newButtonHeight(value:String):void{
        _newButtonHeight = value;
    }

    //设置按钮与formitem内的控件(如textInput)之间的间距
    public function set newButtonSpace(value:String):void{
        _newButtonSpace = value;
    }

    private function doDispatch(event:Event):void{
        this.dispatchEvent(new Event("doSomething"));
    }

    override protected function createChildren():void{
        super.createChildren();
        newButton = new Button();

        //skin类定义在css文件中。
        newButtonSkin = getStyle("newButtonSkin");
        newButton.setstyle("upSkin",newButtonSkin);
        newButton.setstyle("downSkin",newButtonSkin);
        newButton.setstyle("overSkin",newButtonSkin);

        newButton.width = _newButtonWidth;
        newButton.height=_newButtonHeight;
        newButton.label = _newButtonLabel;

        newButton.addEventListener(MouseEvent.Click, doDispatch);

        rawChildren.addChild(newButton);     //作为一个非内容子项添加
    }

    //调整按钮的位置,显示在formItem的最右边
    override protected function updateDisplayList(unscaleWidth:Number,unscaleHeight:Nuber):void{
        //计算加上新加的按钮的formItem宽度,并列新父的宽
        var containerWidth:int = _newButtonWidth + unscaleWidth + _newButtonSpace;
        super.updateDisplayList(containerWidth,unscaleHeight);
       
        //取得应放置按钮的xy座标
        var xPos:int = containerWidth = _newButtonWidth;
        var yPos:int = 0;

        //此时不能用xPos、yPos赋值给newButton的xy座标,应该用newButton的move方法
        newButton.move(xPos,yPos);
    }
}

 


/****在MXML中调用FormItemWithButton ****/
<comp:FormItemWithButton label="username"
    newButtonLabel="help"
    newButtonHeight="50"
    newButtonWidth="70"
    styleName="formItemButton"
    doSomething="doSomeHandler()">
</comp:FormItemWithButton>

 

 

/*****css定义******/
.formItemButton:{
    newButtonSkin: ClassRefrence("skins.RoundedButtonSkin"); //ActionScript类
}

分享到:
评论

相关推荐

    【JavaScript源代码】Vue模仿ElementUI的form表单实例代码.docx

    - 为了使`FormItem`组件能够正确地识别当前校验的是哪个字段,可以通过`prop`属性来指定字段名,然后在`FormItem`组件中使用该名称来从`Form`组件传递过来的规则(`rules`)中获取相应的校验规则。 #### 五、总结 ...

    flex form 验证(转)

    例如,`&lt;mx:Form&gt;`用于创建表单,`&lt;mx:FormItem&gt;`定义表单项,而`&lt;mx:Validator&gt;`则用于附加验证规则。 4. **验证过程** - 用户在表单中输入数据。 - 当用户尝试提交表单或失去焦点时,关联的验证器会触发验证。 ...

    C#的知识类库(继承)

    4. 抽象类和接口:抽象类不能实例化,只能作为其他类的基类,接口则只包含方法签名,不提供实现。 三、ArrayList与ComboBox ArrayList是.NET框架早期版本中的动态数组,可以存储各种类型的对象。在C#中,我们通常...

    commonsfile在action中的上传实例

    首先,确保Action类继承自适当的MVC框架的基类,如Struts的`ActionSupport`或Spring的`Controller`。然后,我们需要检查请求是否包含文件,并处理上传: ```java import org.apache.commons.fileupload.FileItem; ...

    Flex开发自定义控件

    &lt;/mx:FormItem&gt; &lt;mx:FormItem label="密码"&gt; &lt;/mx:FormItem&gt; &lt;/mx:Form&gt; 登录" x="190" y="118"/&gt; ``` 4. **事件处理**: - 为登录按钮添加事件监听器,处理登录逻辑,例如验证用户名和密码。 5. **...

    JAVA期末作业打飞机游戏设计(程序+论文).zip

    首先显示的是游戏的背景介绍(图4-1),为此,在类lzhhdm定义Form类对象a,在startApp()函数中判断isSplash是否为真,如果为真的话,将创建Form类的实例a,并且调用append()方法在表单上放置StringItem类的实例以...

    CheckedListBox例子的应用程序,.net,很好的实例(C#源代码编写)

    1. 控件特性:CheckedListBox继承自ListBox控件,其主要特征在于每个列表项前面都有一个复选框。用户可以通过点击复选框来选择或取消选择项目,而ListBox只能通过单击条目进行切换。 2. 属性与方法:CheckedListBox...

    EXT 中文手册内具实例代码

    - **Item 类型**:介绍了菜单中可使用的不同 Item 类型。 - **菜单放置**:展示了如何在 UI 中放置菜单。 - **动态添加**:可以动态地向 Toolbar 添加菜单按钮。 #### 14. 模板(Templates)起步 - **HTML 模板**:...

    Flex4.0自定义控件

    &lt;/mx:FormItem&gt; &lt;mx:FormItem label="密码"&gt; &lt;/mx:FormItem&gt; &lt;/mx:Form&gt; 登录" x="190" y="118"/&gt; ``` - 以上代码实现了一个简单的登录界面布局。为了使其具备功能性,还需编写事件处理程序。例如,可以...

    解决java enctype multipart form-data文件上传传值问题

    - 创建`ServletFileUpload`实例,并设置最大文件大小等参数。 - 调用`parseRequest`方法解析请求中的文件项。 4. **处理文件**: - 遍历`List&lt;FileItem&gt;`,区分普通字段和文件字段。 - 对于文件字段,使用特定...

    flex quick starts

    &lt;mx:FormItem label="Button without tooltip:"&gt; &lt;/mx:FormItem&gt; &lt;/mx:Form&gt; ``` **2. 代码解析** - **样式定义**:首先定义了一个名为`ToolTip`的样式,用于设置工具提示的字体、大小、样式、颜色以及...

    jsp上传文件的实例注释详解

    - 在后台,创建一个Servlet继承自`HttpServlet`,重写`doPost()`方法。 - 在`doPost()`方法中,使用FileUpload库解析请求。 - 检查上传文件的大小和类型,如果符合要求,将文件保存到服务器。 6. **示例代码注释...

    Bootstrap和Java分页实例第二篇

    这个`Pager`类继承自`TagSupport`,并在其中定义了几个关键属性:`curPage`(当前页),`totalPage`(总页数),`pageSize`(页面大小)以及`totalCount`(总记录数)。 `&lt;taglib&gt;`元素是定义自定义标签的关键,它...

    Web开发课程设计案例与数据库毕设实例

    ### Web开发课程设计案例与数据库毕设实例 #### 项目背景及目标 本文介绍的Web开发项目是一个简单但功能完备的博客系统。该系统旨在帮助读者深入理解Web开发的全流程,涵盖前端、后端以及数据库设计与实现。通过该...

    C# WindowsForm程序同时启动多个窗口类

    本文将详细介绍如何使用 C# WindowsForm 实现同时启动多个窗口类的方法,并提供相关代码实例。 一、C# WindowsForm 程序的多窗口类启动原理 在 C# WindowsForm 应用程序中,默认情况下只能启动一个窗口类,但是有...

    Android 轻松实现语音识别 实例.doc

    1. **Activity声明**:定义了一个名为`VoiceRecognition`的活动,该活动继承自`Activity`类,并实现了`OnClickListener`接口。 2. **常量定义**:定义了一个常量`VOICE_RECOGNITION_REQUEST_CODE`用于唯一标识启动...

    基于Java的实例开发源码-J2ME黑白棋游戏手机版 v2.1完整源码.zip

    同时,理解和利用LWUIT( Lightweight User Interface Toolkit)或MIDP的Form和Item组件创建交互式用户界面也很重要。 5. **游戏逻辑**:黑白棋游戏的规则和算法需要被实现,包括棋盘的初始化、落子判断、翻转棋子...

    java低级界面实现文字输入

    首先,创建一个 `Form` 实例,然后添加一个 `TextBox` 对象作为文本输入框。`TextBox` 是一个可以输入和显示多行文本的组件,它的构造函数通常需要一个标题、最大字符数和输入类型(例如,只读、密码输入等)。 ```...

    j2me customItem Table

    例如,文中的`CalendarForm`类就是一个包含多个`Item`的`Form`实例,其中`upperItem`、`calendarItem`和`lowerItem`分别占据不同的位置,当内容超出屏幕高度时,`Form`会自动显示滚动条供用户操作。 ### 总结 ...

Global site tag (gtag.js) - Google Analytics