- 浏览: 599767 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
fei33423:
同意你的说法. hbase 的强一致性分为两部分来说. 数据分 ...
浅谈Hbase 的强一致性 -
zengwenbo5566:
,高人,刚安装了 genymotion 那个附带 virtu ...
VirtualBox报错Unable to load R3 module GetLastError=1790 (VERR_UNRESOLVED_ERROR -
kabike:
QQ1289714862 写道这代码有问题吧 bar1 bar ...
AtomicBoolean运用 -
QQ1289714862:
这代码有问题吧 bar1 bar2 那来的 你是不是new了两 ...
AtomicBoolean运用 -
DEMONU:
需要依赖这么多东西啊
hbase 0.96和hadoop 2.2 java 客户端的jar依赖
http://kabike.iteye.com/blog/1850988里我们已经产生了一个列表,不过列表的最后一列往往都是操作,现在我们在最后一列添加几个按钮
现在看到后面出现按钮了,
下面要添加一些事件
首先在barClient.mxml(就是我们一直用的这个文件)中定义一个函数,然后期望在按钮的click事件中触发它
结果发现两个错误,指出"调用的方法 foo 可能未定义。"
这是怎么回事呢?
在flex中,每个mxml文件最终会编译为as文件来执行,我们先在barClient这个工程加上-keep-generated-actionscript选项,保留产生的as文件
会发现barClient和它的那个itemRenderer会分别编译成一个类,
事实上,我们用的这种itemRenderer是inline itemRenderer,它和一个外部的itemRenderer没什么本质的区别.
为了在itemRenderer中引用那个foo函数,我们可以把foo首先改成public,然后button改成如下形式
outerDocument是向外面这个document的引用...
突然想起如果是java的话,itemRenderer应该编译成outerDocument的内部类,那么那个foo方法就不用搞成public的了
现在已经可以工作了,不过每次看着那个public的foo方法总是感觉不爽.因此更好的方案是利用event.itemRenderer的职责应该是显示,然后产生一个event,让外部组件来处理这个事件.
改进后代码如下
这样foo方法摇身一变,成了一个eventhandler,但是它仍然是private的,注意
var event:CrapEvent=new CrapEvent(type,true);
其中第一个true表示这个事件是冒泡的,因为事件是itemRenderer发出的,而handler注册在application上,因此冒泡是必须的.
CrapEvent是一个普普通通的自定义事件.
<s:DataGrid id="studentDG" width="100%" dataProvider="{studentList}"> <s:columns> <s:ArrayList> <s:GridColumn dataField="id" headerText="ID"/> <s:GridColumn dataField="name" headerText="姓名"/> <s:GridColumn headerText="操作"> <s:itemRenderer> <fx:Component> <s:GridItemRenderer> <s:layout> <s:HorizontalLayout/> </s:layout> <s:Button label="编辑"/> <s:Button label="查看"/> </s:GridItemRenderer> </fx:Component> </s:itemRenderer> </s:GridColumn> </s:ArrayList> </s:columns> </s:DataGrid>
现在看到后面出现按钮了,
下面要添加一些事件
首先在barClient.mxml(就是我们一直用的这个文件)中定义一个函数,然后期望在按钮的click事件中触发它
结果发现两个错误,指出"调用的方法 foo 可能未定义。"
这是怎么回事呢?
在flex中,每个mxml文件最终会编译为as文件来执行,我们先在barClient这个工程加上-keep-generated-actionscript选项,保留产生的as文件
会发现barClient和它的那个itemRenderer会分别编译成一个类,
事实上,我们用的这种itemRenderer是inline itemRenderer,它和一个外部的itemRenderer没什么本质的区别.
为了在itemRenderer中引用那个foo函数,我们可以把foo首先改成public,然后button改成如下形式
<s:Button label="编辑" click="outerDocument.foo();"/> <s:Button label="查看" click="outerDocument.foo();"/>
outerDocument是向外面这个document的引用...
突然想起如果是java的话,itemRenderer应该编译成outerDocument的内部类,那么那个foo方法就不用搞成public的了
现在已经可以工作了,不过每次看着那个public的foo方法总是感觉不爽.因此更好的方案是利用event.itemRenderer的职责应该是显示,然后产生一个event,让外部组件来处理这个事件.
改进后代码如下
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <s:RemoteObject id="studentRO" destination="student"> <s:method name="findStudentList" result="studentList=event.result as ArrayCollection"/> </s:RemoteObject> </fx:Declarations> <fx:Script> <![CDATA[ import com.crap.event.CrapEvent; import com.crap.model.Student; import mx.collections.ArrayCollection; import mx.controls.Alert; [Bindable] private var studentList:ArrayCollection; private function init():void{ this.addEventListener("edit",foo); this.addEventListener("show",foo); } private function foo(event:CrapEvent):void{ var student:Student=event.data as Student; Alert.show(event.type+student.id); } ]]> </fx:Script> <s:VGroup> <s:Button label="刷新" click="studentRO.findStudentList()"/> <s:DataGrid id="studentDG" width="100%" dataProvider="{studentList}"> <s:columns> <s:ArrayList> <s:GridColumn dataField="id" headerText="ID"/> <s:GridColumn dataField="name" headerText="姓名"/> <s:GridColumn headerText="操作"> <s:itemRenderer> <fx:Component> <s:GridItemRenderer> <fx:Script> <![CDATA[ import com.crap.event.CrapEvent; import com.crap.model.Student; private function sendEvent(type:String,data:Student):void{ var event:CrapEvent=new CrapEvent(type,true); event.data=data; this.dispatchEvent(event); } ]]> </fx:Script> <s:layout> <s:HorizontalLayout/> </s:layout> <s:Button label="编辑" click="sendEvent('edit',data as Student)"/> <s:Button label="查看" click="sendEvent('show',data as Student);"/> </s:GridItemRenderer> </fx:Component> </s:itemRenderer> </s:GridColumn> </s:ArrayList> </s:columns> </s:DataGrid> </s:VGroup> </s:Application>
这样foo方法摇身一变,成了一个eventhandler,但是它仍然是private的,注意
var event:CrapEvent=new CrapEvent(type,true);
其中第一个true表示这个事件是冒泡的,因为事件是itemRenderer发出的,而handler注册在application上,因此冒泡是必须的.
CrapEvent是一个普普通通的自定义事件.
发表评论
-
actionscript3里的as关键字和强制类型转换
2013-09-11 10:45 1652原来一直以为as是用来类型强制转换的,结果发现用as不能把st ... -
flex中datagrid使用itemrender后的排序
2013-09-02 17:21 559一直以为设置了labelfunction或者使用了itemre ... -
flex组件在鼠标悬浮时变成手型
2013-08-28 14:09 808只需要设置useHandCursor和buttonMode两个 ... -
设置itemCreationPolicy使页面创建时元素已经创建
2013-08-28 14:07 861<?xml version="1.0" ... -
flex rpc通信时,使鼠标处于busy状态
2013-08-28 14:04 620可以使用CursorManager来控制.但是remoteOb ... -
flex 移除dataprovider里的项目时,ItemRenderer set方法传值为null
2013-08-28 13:52 1641<?xml version="1.0" ... -
actionscript package level function 包级别函数
2013-07-30 16:04 905在java中,所有的函数只能定义在类中,而as中,functi ... -
不同语言中的字符串split
2013-07-30 16:01 894javascript中 function bar() { ... -
flex只读属性Bindable
2013-07-30 15:59 1258flex中,属性上标记Bindable,在属性变化时能进行数据 ... -
flex图表坐标标签旋转(Rotating chart axis labels)
2013-07-09 08:41 1406flex图表的横坐标可以旋转90度,尽可能节省空间. 具体方法 ... -
flex中的变量
2013-06-11 18:53 1670<?xml version="1.0" ... -
flex中利用Spacer布局
2013-05-19 21:22 1998比如在html中,为了让一个元素靠左,一个元素靠右,可以依靠f ... -
as的this和js的this
2013-05-19 20:54 880在js中,我们会随手写下这样的代码 <html> ... -
Flex的一点入门经验(9)--强制更新datagrid
2013-05-19 20:14 3871比如我们有个如下的VO [Bindable] pub ... -
Flex的一点入门经验(8)--itemRenderer与外部组件的通信
2013-05-19 19:39 3373比如我们有个如下的VO package com.cra ... -
Flex的一点入门经验(7)--spark组件的滚动条
2013-05-19 14:32 2785在原来的mx组件中,如果子元素大小超过了container的大 ... -
Flex的一点入门经验(6)--spark ButtonBar组件的问题
2013-05-15 23:52 3194运行以下代码 <?xml version=&quo ... -
Flex的一点入门经验(5)--flex的DataGrid中自定义显示项目
2013-05-04 11:58 1198有如下一个简单的VO,有两个属性name和capacity. ... -
Flex的一点入门经验(4)--分页,又见分页
2013-05-01 11:19 1768基本各种列表都和分页有着密不可分的关系. 在barServer ... -
Flex的一点入门经验(3)--利用state进行页面切换
2013-04-28 13:38 2673http://kabike.iteye.com/blog/18 ...
相关推荐
NULL 博文链接:https://hcty31.iteye.com/blog/1190932
详细介绍Flex的项目呈现器的各种初级用法以及高级用法,相当实用。
Flex项呈示器自定义及使用实例,展示用户信息,包括头像及等级信息。与博客Flex之旅--项呈示器ItemRenderer对应
理解_Flex_itemRenderer 理解_Flex_itemRenderer 理解_Flex_itemRenderer
flex itemRenderer 渲染机制的概念和使用
flex中经常会使用到渲染器,这里简要介绍一下渲染器的一些知识
通过两种方法继承List组件的IconItemRenderer,实现在每个item项中添加组件,如button等
关于flex的itemRenderer的介绍,还算比较详细。
用FLEX4做的项呈现器,仿雅虎聊天界面。 需要的字段为userId、nikeName、sex…… 你可以自行添加 声明,次呈现器只做模版使用。
Flex 4 ColumnChart 图表使用实例ColumnChart_RIA前线-Flex富应用、Flex中文教程、Flex实例源码 Flex实现ColumnChart柱图为圆角矩形的itemRenderer - 代码分享 - 开源中国社区 flex 动态生成柱状图,折线图_IT空间_...
解决Flex内联itemRenderer的例子
NULL 博文链接:https://baiyejianxin.iteye.com/blog/823229
FLEX4实践—动态生成DataGrid及应用客户化itemRenderer.doc
基于flex的最牛的datagrid做的节目或者课程播表,用ml存储数据,连接到别的页面.
itemRenderer里面的内容 获取技巧。
本文为大家详细介绍下Flex4如何使用itemRenderer 为Tree加线,感兴趣的朋友可以参考下
NULL 博文链接:https://liugang-ok.iteye.com/blog/1135551
{idx:2, names: "test2", sex: "g" } ]; public function doSelect(o:Object):void { Alert.show("行的数据分别是:"+o.idx+"/"+o.names+"/"+o.sex); } private var sheet:Sheet; private ...
flex中渲染器简介 本系列讨论 Flex itemRenderer 以及如何高效、有效地使用它们。
提供: 内渲染器的使用方法。 通过2个List的 界面 自己看效果理解。