/*******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类
}
分享到:
相关推荐
- 为了使`FormItem`组件能够正确地识别当前校验的是哪个字段,可以通过`prop`属性来指定字段名,然后在`FormItem`组件中使用该名称来从`Form`组件传递过来的规则(`rules`)中获取相应的校验规则。 #### 五、总结 ...
例如,`<mx:Form>`用于创建表单,`<mx:FormItem>`定义表单项,而`<mx:Validator>`则用于附加验证规则。 4. **验证过程** - 用户在表单中输入数据。 - 当用户尝试提交表单或失去焦点时,关联的验证器会触发验证。 ...
4. 抽象类和接口:抽象类不能实例化,只能作为其他类的基类,接口则只包含方法签名,不提供实现。 三、ArrayList与ComboBox ArrayList是.NET框架早期版本中的动态数组,可以存储各种类型的对象。在C#中,我们通常...
首先,确保Action类继承自适当的MVC框架的基类,如Struts的`ActionSupport`或Spring的`Controller`。然后,我们需要检查请求是否包含文件,并处理上传: ```java import org.apache.commons.fileupload.FileItem; ...
</mx:FormItem> <mx:FormItem label="密码"> </mx:FormItem> </mx:Form> 登录" x="190" y="118"/> ``` 4. **事件处理**: - 为登录按钮添加事件监听器,处理登录逻辑,例如验证用户名和密码。 5. **...
首先显示的是游戏的背景介绍(图4-1),为此,在类lzhhdm定义Form类对象a,在startApp()函数中判断isSplash是否为真,如果为真的话,将创建Form类的实例a,并且调用append()方法在表单上放置StringItem类的实例以...
1. 控件特性:CheckedListBox继承自ListBox控件,其主要特征在于每个列表项前面都有一个复选框。用户可以通过点击复选框来选择或取消选择项目,而ListBox只能通过单击条目进行切换。 2. 属性与方法:CheckedListBox...
- **Item 类型**:介绍了菜单中可使用的不同 Item 类型。 - **菜单放置**:展示了如何在 UI 中放置菜单。 - **动态添加**:可以动态地向 Toolbar 添加菜单按钮。 #### 14. 模板(Templates)起步 - **HTML 模板**:...
</mx:FormItem> <mx:FormItem label="密码"> </mx:FormItem> </mx:Form> 登录" x="190" y="118"/> ``` - 以上代码实现了一个简单的登录界面布局。为了使其具备功能性,还需编写事件处理程序。例如,可以...
- 创建`ServletFileUpload`实例,并设置最大文件大小等参数。 - 调用`parseRequest`方法解析请求中的文件项。 4. **处理文件**: - 遍历`List<FileItem>`,区分普通字段和文件字段。 - 对于文件字段,使用特定...
<mx:FormItem label="Button without tooltip:"> </mx:FormItem> </mx:Form> ``` **2. 代码解析** - **样式定义**:首先定义了一个名为`ToolTip`的样式,用于设置工具提示的字体、大小、样式、颜色以及...
- 在后台,创建一个Servlet继承自`HttpServlet`,重写`doPost()`方法。 - 在`doPost()`方法中,使用FileUpload库解析请求。 - 检查上传文件的大小和类型,如果符合要求,将文件保存到服务器。 6. **示例代码注释...
这个`Pager`类继承自`TagSupport`,并在其中定义了几个关键属性:`curPage`(当前页),`totalPage`(总页数),`pageSize`(页面大小)以及`totalCount`(总记录数)。 `<taglib>`元素是定义自定义标签的关键,它...
### Web开发课程设计案例与数据库毕设实例 #### 项目背景及目标 本文介绍的Web开发项目是一个简单但功能完备的博客系统。该系统旨在帮助读者深入理解Web开发的全流程,涵盖前端、后端以及数据库设计与实现。通过该...
本文将详细介绍如何使用 C# WindowsForm 实现同时启动多个窗口类的方法,并提供相关代码实例。 一、C# WindowsForm 程序的多窗口类启动原理 在 C# WindowsForm 应用程序中,默认情况下只能启动一个窗口类,但是有...
1. **Activity声明**:定义了一个名为`VoiceRecognition`的活动,该活动继承自`Activity`类,并实现了`OnClickListener`接口。 2. **常量定义**:定义了一个常量`VOICE_RECOGNITION_REQUEST_CODE`用于唯一标识启动...
同时,理解和利用LWUIT( Lightweight User Interface Toolkit)或MIDP的Form和Item组件创建交互式用户界面也很重要。 5. **游戏逻辑**:黑白棋游戏的规则和算法需要被实现,包括棋盘的初始化、落子判断、翻转棋子...
首先,创建一个 `Form` 实例,然后添加一个 `TextBox` 对象作为文本输入框。`TextBox` 是一个可以输入和显示多行文本的组件,它的构造函数通常需要一个标题、最大字符数和输入类型(例如,只读、密码输入等)。 ```...
例如,文中的`CalendarForm`类就是一个包含多个`Item`的`Form`实例,其中`upperItem`、`calendarItem`和`lowerItem`分别占据不同的位置,当内容超出屏幕高度时,`Form`会自动显示滚动条供用户操作。 ### 总结 ...