- 浏览: 190966 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
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 1069... -
array 与 arrayCollection
2009-03-19 17:20 1883arrayCollection比array高级。增加了一些事件 ... -
调整netBeans中文版的字号
2009-01-20 14:43 1574netBeans6.5中文版界面上的字号太小,看起来很不舒服, ... -
Flex3 cookbook 翻译: 3.2 根据比例设定对象的位置和尺寸
2008-09-18 18:26 14403.2 根据比例设定对象的位置和尺寸 3.2.1 问题 你 ... -
Flex 3 cookbook翻译: 3.1 用布局管理器定位子对象
2008-09-18 00:25 23653 容器 . 容器 (contain ... -
Flex 3 cookbook翻译: 2.14 处理focusIn和focusOut事件
2008-09-17 22:55 32552.14 处理 focusIn 和 focusOut 事件 ... -
Flex 3 cookbook翻译: 2.13 为弹出窗口创建自定义边框
2008-09-17 18:11 30162.13 为弹出窗口创建自定义边框 2.13.1 问 ... -
Flex 3 cookbook翻译: 2.12 显示并定位多个弹出框
2008-09-17 16:07 37022.12 显示并定位多个弹出框 2.12.1 问题 ... -
Flex 3 cookbook翻译: 2.11 使用来自Calendar控件的日期
2008-09-17 01:58 18472.11 使用来自 Calendar ... -
Flex 3 cookbook翻译
2008-09-17 01:28 1248Flex 3 cookbook翻译: 2.1 监听Butto ... -
Flex 3 cookbook翻译: 2.10 在应用中显示一个Alert窗口
2008-09-17 01:23 13092.10 在应用中显示一个 Alert 窗口 2.10 ... -
Flex 3 cookbook: 2.9 为菜单控件创建事件处理器
2008-09-17 00:38 22392.9 为菜单控件创建事件处理器 2.9.1 问题 ... -
Flex 3 cookbook翻译: 2.7 为菜单提供数据
2008-09-16 22:26 10672.7 为菜单提供数据 2.7.1 问题 用 data ... -
Flex 3 cookbook翻译: 2.6 设置控件的labelFunction
2008-09-16 21:30 14682.6 设置 控件的 labelFunction 2. ... -
Flex 3 cookbook翻译: 2.5 设置组件的tab键顺序
2008-09-16 18:34 25852.5 设置组件的 tab 键顺序 2.5.1 问题 ... -
Flex 3 cookbook翻译: 2.4 用SWFLoader载入一个SWF文件
2008-09-16 17:23 49682.4 用 SWFLoader 载入一个 SWF 文件 ... -
Flex 3 cookbook: 2.3 用ColorPicher设置Canvas的颜色
2008-09-16 17:06 29782.3 用 ColorPicher 设置 Canvas ... -
Flex 3 cookbook翻译: 2.2 生成一系列开关按钮
2008-09-16 16:33 21872.2 生成一系列开关按钮 2.2.1 问题 ... -
Flex 3 cookbook翻译: 2.1 监听Button的Click事件
2008-09-10 17:10 5294第 2 章 菜单和控件 Flex3 SDK 提供 ... -
为LinkButton组件添加icon(图标)并设定icon和label的位置
2008-09-08 22:49 7489来自:http://blog.flexexamples.com ...
相关推荐
Flex 3 Cookbook.Flex 3 Cookbook.Flex 3 Cookbook.Flex 3 Cookbook.Flex 3 Cookbook.Flex 3 Cookbook.Flex 3 Cookbook.
Flex 3 Cookbook简体中文版最新推荐常青Flex 3 Cookbook简体中文版最新推荐常青Flex 3 Cookbook简体中文版最新推荐常青Flex 3 Cookbook简体中文版最新推荐常青
PyQGIS developer cookbook_2.8 是release2.8的
Flex3 CookBook 教程 Flex3 CookBook 教程
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...
Flex 3 Cookbook[中文版].pdf 网络上大力推荐的Flex学习图书
Flex3CookBook中文版Flex3CookBook中文版Flex3CookBook中文版Flex3CookBook中文版
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...
高清彩版 Concurrency in C# Cookbook: 高清彩版 Concurrency in C# Cookbook:
Raspberry Pi Cookbook: Software and Hardware Problems and Solutions 2nd Edition With millions of new users and several new models, the Raspberry Pi ecosystem continues to expand—along with a lot of ...
Flex 3 Cookbook 中文版 Flex 3 Cookbook 中文版 Flex 3 Cookbook 中文版 Flex 3 Cookbook 中文版 Flex 3 Cookbook 中文版
Flex 4 Cookbook
Flex 3 CookBook源码 Flex 3 CookBook源码
Chapter 3. Standard Input Chapter 4. Executing Commands Chapter 5. Basic Scripting: Shell Variables Chapter 6. Shell Logic And Arithmetic Chapter 7. Intermediate Shell Tools I Chapter 8. Intermediate ...
Flex 3 Cookbook.pdfFlex 3 Cookbook.pdfFlex 3 Cookbook.pdfFlex 3 Cookbook.pdf
iOS Swift Game Development Cookbook: Simple Solutions for Game Development Problems. epub
flex3 cookbook bonus chapter 代码