自定义组件--创建mxml组件
创建简单的mxml组件
Example
components/CountryComboBox.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:dataProvider> <mx:String>United States</mx:String> <mx:String>United Kingdom</mx:String> <!-- Add all other countries. --> </mx:dataProvider> </mx:ComboBox>
Main application MXML file
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:custom="components.*" width="220" height="115" > <custom:CountryComboBox/> </mx:Application>
自定义组件的属性和方法
Example
components/CountryComboBox.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:dataProvider> <mx:String>United States</mx:String> <mx:String>United Kingdom</mx:String> <!-- Add all other countries... --> </mx:dataProvider> </mx:ComboBox>
Main application MXML file
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:custom="components.*" width="270" height="170" > <mx:Script> <![CDATA[ import flash.events.Event; private function handleCloseEvent(eventObj:Event):void {status.text = "You selected: \r" + countries.selectedItem as String; } ]]> </mx:Script> <mx:Panel title="Custom component inheritance" paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10" > <custom:CountryComboBox id="countries" rowCount="5" close="handleCloseEvent(event);" /> <mx:Text id="status" text="Please select a country from the list." width="136"/> </mx:Panel> </mx:Application>
创建复合型mxml组件
Example
components/AddressForm.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:Form xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:custom="components.*" > <mx:FormItem label="Name"> <mx:TextInput/> </mx:FormItem> <mx:FormItem label="Street"> <mx:TextInput/> </mx:FormItem> <mx:FormItem label="City"> <mx:TextInput/> </mx:FormItem> <mx:FormItem label="State/County"> <mx:TextInput/> </mx:FormItem> <mx:FormItem label="Country"> <custom:CountryComboBox/> </mx:FormItem> </mx:Form>
components/CountryComboBox.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:dataProvider> <mx:String>United States</mx:String> <mx:String>United Kingdom</mx:String> <!-- Add all other countries... --> </mx:dataProvider> </mx:ComboBox>
Main application MXML file
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:custom="components.*" viewSourceURL="src/MxmlComponentComposite/index.html" width="400" height="290" > <mx:Panel title="Composite component" paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10" > <custom:AddressForm /> </mx:Panel> </mx:Application>
创建重用mxml组件
Example
components/CountryComboBox.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[ private var countryArrayShort:Array = ["US", "UK"]; private var countryArrayLong:Array = ["United States", "United Kingdom"]; // Determines display state. The inspectable metadata tag // is used by Flex Builder 2 [Inspectable(defaultValue=true)] private var _useShortNames:Boolean = true; // Implicit setter public function set useShortNames (state:Boolean):void {// Call method to set the dataProvider based on the name length. _useShortNames = state; if (state) {this.dataProvider = countryArrayShort; } else {this.dataProvider = countryArrayLong; } // Dispatch an event when the value changes // (used in data binding.) dispatchEvent(new Event("changeUseShortNames")); } // Allow other components to bind to this property [Bindable(event="changeUseShortNames")] public function get useShortNames():Boolean {return _useShortNames; } ]]> </mx:Script> </mx:ComboBox>
Main application MXML file
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:custom="components.*" viewSourceURL="src/MxmlComponentAdvanced/index.html" width="260" height="200" > <mx:Panel title="Advanced custom components" paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10" > <!-- Set a custom property on a custom component --> <custom:CountryComboBox id="countries" useShortNames="false" /> <!-- Use data binding to display the latest state of the property. --> <mx:Label text="useShortNames = {countries.useShortNames}"/> <mx:ControlBar horizontalAlign="right"> <mx:Button label="Toggle Display" click="countries.useShortNames = !countries.useShortNames;" /> </mx:ControlBar> </mx:Panel> </mx:Application>
转载于:https://www.cnblogs.com/yzxchoice/archive/2007/01/18/623959.html
自定义组件--创建mxml组件相关推荐
- 【Flutter】StatefulWidget 组件 ( 创建 StatefulWidget 组件 | MaterialApp 组件 | Scaffold 组件 )
文章目录 一.StatefulWidget 组件 二.创建 StatefulWidget 组件 三.MaterialApp 组件 四.Scaffold 组件 五. 相关资源 一.StatefulWid ...
- 【Flutter】自定义 Flutter 组件 ( 创建自定义 StatelessWidget、StatefulWidget 组件 | 调用自定义组件 )
文章目录 一.Flutter 组件简介 二.Flutter 自定义 StatelessWidget 组件流程 1.导入父类包 2.选择继承的父类 3.设置成员变量及构造函数 4.重写 build 方法 ...
- angular 自定义组件_如何创建Angular 6自定义元素和Web组件
angular 自定义组件 by Prateek Mishra 通过Prateek Mishra 如何创建Angular 6自定义元素和Web组件 (How to create Angular 6 C ...
- 使用VUE组件创建SpreadJS自定义单元格(二)
在上篇中,我们介绍了如何通过设置runtimeCompiler为true,在Vue中实现了动态创建电子表格组件.想了解具体内容可看点击查看使用VUE组件创建SpreadJS自定义单元格(一). 但是在 ...
- vue自定义音频播放组件_易于创建Vue的自定义音频播放器组件
vue自定义音频播放组件 音频更好 (vue-audio-better) Easy to create custom audio player components for Vue.js. 易于为Vu ...
- vue 自定义组件 创建及其使用
vue 自定义组件 创建及其使用 1.vue 自定义组件有全局注册和局部注册两种方式: 全局注册通过 Vue.component 来创建组件,这些组件是全局注册的.也就是说它们在注册之后可以用在任何新 ...
- 使用VUE组件创建SpreadJS自定义单元格(一)
作为近五年都冲在热门框架排行榜首的Vue,大家一定会学到的一部分就是组件的使用.前端开发的模块化,可以让代码逻辑更加简单清晰,项目的扩展性大大加强.对于Vue而言,模块化的体现集中在组件之上,以组件为 ...
- react 组件样式_如何使用样式化组件为React组件创建视觉变体
react 组件样式 by Gilad Dayagi 通过吉拉德·达亚吉 如何使用样式化组件为React组件创建视觉变体 (How to create visual variants for Reac ...
- 【Android 内存优化】自定义组件长图组件 ( 长图滚动区域解码 | 手势识别 GestureDetector | 滑动计算类 Scroller | 代码示例 )
文章目录 一.GestureDetector 创建与设置 二.GestureDetector 触摸事件传递 三.触摸滑动操作 四.惯性滑动操作 五.长图滑动组件代码示例 六.运行效果 七.源码及资源下 ...
最新文章
- 报名 | AWS云计算专家邀您一起聊聊AI
- BT觀念分享和常見問題彙整
- 机器学习(MACHINE LEARNING)种群竞争模型
- 如何修改root目录内容后打包
- 前海理想金融联手云信,共促互联网金融领域变革
- Tag recommendaion... 论文中的小例子,使用HOSVD算法推荐
- C++获取文件夹下所有文件名
- PHP7开启opcache打造强悍性能
- 常见坑人无数的Redis面试题总结
- mysql表关联关于Hibernate的异常org.springframework.orm.hibernate5.HibernateOptimisticLockingFailureException
- 线性表---顺序表链表
- HDU 3488 KM
- 红橙Darren视频笔记 builder设计模式+navigationBar导航条
- SQLi Labs Less-1 联合注入+报错注入
- Java转Ruby【快速入门】
- ACI注册国际项目考试地点汇总
- 网络电视广告屏蔽教程
- 超 3000 个特效镜头,复联 4 是如何「速成」的?
- 精耕“大数据” 做精准营销
- (开包即用,不用看代码!)借助Docker自动构建Java(Oracle)镜像