- 浏览: 196529 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
ZKJABLE:
解决了我的问题。好文要顶!
遭遇了"Call to undefined function socket_create()" -
touya:
非常感谢!果然有效,更改后的结果如下:netbeans_def ...
调整netBeans中文版的字号 -
playfish:
支持楼主翻译,辛苦了.
Flex 3 cookbook翻译: 2.1 监听Button的Click事件 -
ycy303:
专注才能成功。
叽叽歪歪 -
ycy303:
工具:1. flex/flash/air2. php3. ru ...
叽叽歪歪
2.8 动态填充菜单
2.8.1 问题
你想填充并动态改变菜单
2.8.2 解答
用 ActionScript 分配一个 ArrayCollection 或 XMLListCollection 这样的 Collection 对象给 MenuBar 控件的 dataProvider 属性。
2.8.3 讨论
在 Flex 3 里的 MenuBar 控件支持在运行时动态生成菜单项。下面的代码生成一个有 MenuBar 控件的应用,当应用被初始化时,这个 MenuBar 被一个 ArrayCollecton 对象填充。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="initApp(event)"> <mx:MenuBar id="menu" dataProvider="{menu_dp}"/> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.events.FlexEvent; [Bindable] private var menu_dp:ArrayCollection; private function initApp(evt:FlexEvent):void { var temp:Array = new Array(); var subNodes:ArrayCollection = new ArrayCollection([{label:"New"}, {label:"Open"}, {label:"Close",enabled:false}]); temp.push({label:"File",children:subNodes}); temp.push({label:"Edit"}); temp.push({label:"Source"}); subNodes = new ArrayCollection([{label:"50%", type:"radio",roupName:"one"}, {label:"100%", type:"radio", groupName:"one",selected:true}, {label:"150%", type:"radio", groupName:"one"}]); temp.push({label:"View",children:subNodes}); menu_dp = new ArrayCollection(temp); } ]]> </mx:Script> </mx:Application>
上述代码用 binding 绑定一个名为 menu_dp 的 ArrayCollecton 对象到 MenuBar 组件的 dataProvider 属性。在该应用的 creationComplete 事件发生时, menu_dp 被初始化,并填充菜单项。就像 Flex 里的其它数据驱动组件一样,使用类似 ArrayCollection 或 XMLListCollection 的 Collection 组件,可以确保基础数据的任何变化都会导致控件的显示作相应的刷新。
译者注 : 请将 subNodes 的第二项的 selected 属性改成 toggled 。如 2.7 节所述, toggled 属性才是控制 radio 类型的菜单项是否被选中的。
Collection 组件提供了便利的方法编辑,添加,删除菜单项。为了说明这一点,这个例子在 MenuBar 下添加了一个简单的 Form 组件,让你可以根据他们在 ArrayCollecton 里的索引编辑菜单。
<mx:Form> <mx:FormHeading label="Menu Editor"/> <mx:FormItem label="Menu Index"> <mx:TextInput id="menuIdx" restrict="0-9" text="0" width="20"/> </mx:FormItem> <mx:FormItem label="Sub-Menu Index"> <mx:TextInput id="subMenuIdx" restrict="0-9" width="20"/> </mx:FormItem> <mx:FormItem label="Menu Label"> <mx:TextInput id="label_ti"/> </mx:FormItem> <mx:FormItem> <mx:Button label="Edit" click="editMenu()"/> </mx:FormItem> </mx:Form>
这是一个很基础的 Form ,它的 input 控件可以让你指定数组索引,依此来获取一个特定的菜单项。在 menuIdx 文本框里输入 0 ,并保持 subMenuIdx 为空,则指定 File 菜单的顶级。在 menuIdx 文本框里输入 0 ,在 subMenuIdx 里输入 0 ,则指定 New 子菜单项。
当用户单击 Edit 按钮, editMenu 方法就被调用,这个方法用指定的索引来获取某个菜单项的引用并改变它的标签。请看如下代码:
private function editMenu():void { var itemToEdit:Object; try { itemToEdit = menu_dp.getItemAt(int(menuIdx.text)); if(subMenuIdx.text) { itemToEdit = itemToEdit.children.getItemAt(int(subMenuIdx.text)); } itemToEdit.label = label_ti.text; menu_dp.itemUpdated(itemToEdit); } catch(ex:Error){ trace("could not retrieve menu item"); } }
editMenu 里的代码查找输入 menuIdx 和 subMenuIdx 里的值,依此去寻找一个特定的菜单项,然后用 label_ti 里的值去刷新那个菜单项显示的内容。注意:为了改变菜单的显示,与 MenuBar 关联的 dataProvider 被改变了,然后用 ArrayCollecton 的 itemUpdated 方法来请求刷新菜单显示。在类似这个例子的嵌套数据结构中,调用 itemUpdated 来请求显示刷新很重要。否则,基础数据改变了,但是显示仍然是旧的内容。示例代码中用了一个 try…catch 块来为数组界限做一些基础的错误处理。
发表评论
-
flex的字体问题
2010-07-01 16:48 1114... -
array 与 arrayCollection
2009-03-19 17:20 1924arrayCollection比array高级。增加了一些事件 ... -
调整netBeans中文版的字号
2009-01-20 14:43 1661netBeans6.5中文版界面上的字号太小,看起来很不舒服, ... -
Flex3 cookbook 翻译: 3.2 根据比例设定对象的位置和尺寸
2008-09-18 18:26 14913.2 根据比例设定对象的位置和尺寸 3.2.1 问题 你 ... -
Flex 3 cookbook翻译: 3.1 用布局管理器定位子对象
2008-09-18 00:25 24063 容器 . 容器 (contain ... -
Flex 3 cookbook翻译: 2.14 处理focusIn和focusOut事件
2008-09-17 22:55 32972.14 处理 focusIn 和 focusOut 事件 ... -
Flex 3 cookbook翻译: 2.13 为弹出窗口创建自定义边框
2008-09-17 18:11 30562.13 为弹出窗口创建自定义边框 2.13.1 问 ... -
Flex 3 cookbook翻译: 2.12 显示并定位多个弹出框
2008-09-17 16:07 37902.12 显示并定位多个弹出框 2.12.1 问题 ... -
Flex 3 cookbook翻译: 2.11 使用来自Calendar控件的日期
2008-09-17 01:58 18952.11 使用来自 Calendar ... -
Flex 3 cookbook翻译
2008-09-17 01:28 1313Flex 3 cookbook翻译: 2.1 监听Butto ... -
Flex 3 cookbook翻译: 2.10 在应用中显示一个Alert窗口
2008-09-17 01:23 13542.10 在应用中显示一个 Alert 窗口 2.10 ... -
Flex 3 cookbook: 2.9 为菜单控件创建事件处理器
2008-09-17 00:38 22862.9 为菜单控件创建事件处理器 2.9.1 问题 ... -
Flex 3 cookbook翻译: 2.7 为菜单提供数据
2008-09-16 22:26 11042.7 为菜单提供数据 2.7.1 问题 用 data ... -
Flex 3 cookbook翻译: 2.6 设置控件的labelFunction
2008-09-16 21:30 15092.6 设置 控件的 labelFunction 2. ... -
Flex 3 cookbook翻译: 2.5 设置组件的tab键顺序
2008-09-16 18:34 26302.5 设置组件的 tab 键顺序 2.5.1 问题 ... -
Flex 3 cookbook翻译: 2.4 用SWFLoader载入一个SWF文件
2008-09-16 17:23 50172.4 用 SWFLoader 载入一个 SWF 文件 ... -
Flex 3 cookbook: 2.3 用ColorPicher设置Canvas的颜色
2008-09-16 17:06 30242.3 用 ColorPicher 设置 Canvas ... -
Flex 3 cookbook翻译: 2.2 生成一系列开关按钮
2008-09-16 16:33 22552.2 生成一系列开关按钮 2.2.1 问题 ... -
Flex 3 cookbook翻译: 2.1 监听Button的Click事件
2008-09-10 17:10 5351第 2 章 菜单和控件 Flex3 SDK 提供 ... -
为LinkButton组件添加icon(图标)并设定icon和label的位置
2008-09-08 22:49 7535来自:http://blog.flexexamples.com ...
相关推荐
English | 10 May 2017 | ASIN: B071VLZ9ZK | 838 Pages | AZW3 | 12 MB Jump in and build working Android apps with the help of more than 230 tested recipes. The second edition of this acclaimed cookbook...
《NGINX Cookbook: Advanced Recipes for High Performance Load Balancing》是由Derek DeJonghe编写的,这本书在2019年出版,ISBN为9781491968932,包含了175页的英文内容,格式为PDF。这本书专门针对那些希望提升...
3. **组件库的使用**:Flex提供了一整套预定义的UI组件,如按钮、文本框、列表等,了解如何创建、自定义和组织这些组件以构建专业级的用户界面。 4. **数据绑定**:学习如何利用Flex的数据绑定机制,实时更新界面...
Flex 3 Cookbook by Joshua Noble; Todd AndersonPublisher: O'ReillyPub Date: May 6, 2008 Print ISBN-13: 978-0-596-52985-7 Pages: 704 The best way to show off a powerful new technology is to demonstrate...
《Flex3 Cookbook》是针对Adobe Flex 3这一版本的开发指南,主要涵盖了使用Flex构建富互联网应用程序(RIA)的各种技术和策略。Flex是一个开源框架,它允许开发者使用MXML和ActionScript来创建交互式、高性能的Web...
Flex 4 Cookbook
2. **数据绑定**:Flex 3中的数据绑定机制是其强大之处,书籍会讲解如何将UI组件与后台数据模型关联,实现动态更新和双向数据同步。 3. **事件处理**:书中会涵盖如何监听和响应各种用户交互事件,以实现应用的动态...
《Flex 4 Cookbook》是一本由Joshua Noble、Todd Anderson、Garth Braithwaite、Marco Casario 和 Rich Tretola 联合编写的英文书籍,由著名的O'Reilly Media出版,专注于Flex 4技术的实用教程。本书旨在帮助读者...
Flex 3 CookBook源码 Flex 3 CookBook源码
- **动态填充菜单**:进一步扩展上一点,演示如何根据运行时数据动态更新菜单内容。 以上仅为《Flex3 Cookbook》中部分内容的概括,该书深入浅出地覆盖了Flex与ActionScript的核心技术和实践技巧,对于希望精通Flex...
### VMware Cookbook: 实际应用指南 #### 书本概述与目标读者 《VMware Cookbook》是一本详尽的指南,旨在帮助IT专业人士深入了解VMware ESX和ESXi的实际应用场景,并提供一系列逐步解决问题的方法。这本书不仅...
Flex 3 Cookbook 是一本专注于Adobe Flex 3技术的实用指南,旨在帮助开发者深入理解和应用Flex 3框架。Flex 3 是一个用于构建富互联网应用程序(RIA)的开发平台,它结合了MXML和ActionScript 3.0,使得UI设计和编程...
6. **移动应用开发**:Flex 3也支持开发移动应用程序,这部分可能包含针对移动设备的优化方法。 总之,这个压缩包对于想要学习Flex和ActionScript 3.0的初学者来说是一份宝贵的资源。通过阅读中文帮助文档和实践...
《Flex3 Cookbook》是针对Adobe Flex 3这一版本的开发指南,它包含了丰富的代码示例和实践教程,帮助开发者深入理解和应用Flex技术。这个完整版的资源包括了源码、范例XML数据以及Bonus Chapter的代码,对于学习和...