访问List的itemRenderer的组件中定义的方法
来源:互联网 发布:linux系统监控软件 编辑:程序博客网 时间:2024/06/06 01:13
如何引用一个List的itemRenderer里的自定义方法,翻了翻手册也没大看见有现成的函数,终于琢磨出了一个,不知道好不好,发上来再说:
主程序文件List1.mxml:
<?xml version="1.0" encoding="utf-8" ?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Style>
Application
{
font-size:12px;
}
</mx:Style>
<mx:Script>
import mx.controls.Alert;
import mx.controls.listClasses.ListBaseContentHolder;
private function handleClick():void
{
if(txt.text=="")
Alert.show("请输入数字1-7(注意:未验证合法性)");
else
{
var n:int=parseInt(txt.text);
//这句是关键代码
(mylist.getChildAt(2) as ListBaseContentHolder).listItems[n-1][0].alertBtn();
}
}
</mx:Script>
<mx:Model id="arr">
<root>
<item label="按钮1" />
<item label="按钮2" />
<item label="按钮3" />
<item label="按钮4" />
<item label="按钮5" />
<item label="按钮6" />
<item label="按钮7" />
<item label="按钮8" />
<item label="按钮9" />
</root>
</mx:Model>
<mx:List id="mylist" dataProvider="{arr.item}" width="100" rowCount="9" leading="0" itemRenderer="MyRenderer" />
<mx:TextInput id="txt" />
<mx:Button label="触发" click="handleClick();" />
</mx:Application>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Style>
Application
{
font-size:12px;
}
</mx:Style>
<mx:Script>
import mx.controls.Alert;
import mx.controls.listClasses.ListBaseContentHolder;
private function handleClick():void
{
if(txt.text=="")
Alert.show("请输入数字1-7(注意:未验证合法性)");
else
{
var n:int=parseInt(txt.text);
//这句是关键代码
(mylist.getChildAt(2) as ListBaseContentHolder).listItems[n-1][0].alertBtn();
}
}
</mx:Script>
<mx:Model id="arr">
<root>
<item label="按钮1" />
<item label="按钮2" />
<item label="按钮3" />
<item label="按钮4" />
<item label="按钮5" />
<item label="按钮6" />
<item label="按钮7" />
<item label="按钮8" />
<item label="按钮9" />
</root>
</mx:Model>
<mx:List id="mylist" dataProvider="{arr.item}" width="100" rowCount="9" leading="0" itemRenderer="MyRenderer" />
<mx:TextInput id="txt" />
<mx:Button label="触发" click="handleClick();" />
</mx:Application>
itemRenderer的组件文件MyRenderer.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" horizontalGap="0"
verticalGap="0" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0">
<mx:Script>
import mx.controls.Alert;
public function alertBtn():void
{
Alert.show("触发了alertBtn(),我是:"+btn.label);
}
</mx:Script>
<mx:Button id="btn" label="{data.label}" width="100%" cornerRadius="0" />
</mx:Box>
<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" horizontalGap="0"
verticalGap="0" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0">
<mx:Script>
import mx.controls.Alert;
public function alertBtn():void
{
Alert.show("触发了alertBtn(),我是:"+btn.label);
}
</mx:Script>
<mx:Button id="btn" label="{data.label}" width="100%" cornerRadius="0" />
</mx:Box>
运行演示,输入呼叫的实例位置1-9:我输入3,然后单击按钮:
可见调用了实例方法。
注:走了不少弯路,起初我以为通过List的getChildAt()可以得到renderer的引用,后来发觉不是,通过Alert它发现其实getChildAt(3)得到的是ListBaseContentHolder的实例,后查了查ListBaseContentHolder得方法里面有个listItems数组放着每一项的引用,于是有了引用什么都好说了。
- 访问List的itemRenderer的组件中定义的方法
- Flex中List自己定义itemrenderer渲染问题的解决
- List 中使用 MXML 自定义组件的数据项访问方法
- 动态设置组件的itemRenderer属性
- 动态设置组件的itemRenderer属性
- Flex中NavigatorContent的通信以及itemRenderer对dataGridColumn的访问
- 同一个list中使用两种或者多种不同的itemRenderer
- itemRenderer的用法
- Flex组件的项目渲染器(ItemRenderer)使用总结
- Flex组件的项目渲染器(ItemRenderer)使用总结
- Flex组件的项目渲染器(ItemRenderer)使用总结 收藏
- Flex组件的项目渲染器(ItemRenderer)使用总结
- Flex组件的项目渲染器(ItemRenderer)使用总结
- Flex组件的项目渲染器(ItemRenderer)使用总结
- Flex组件的项目渲染器(ItemRenderer)使用总结
- Flex组件的项目渲染器(ItemRenderer)使用总结
- Flex List 用嵌入的ItemRenderer实现CheckBox选中功能
- Vue.js 中,7种定义组件模板的方法
- flex 总结
- 浏览器使用情况 IE6依旧是老大
- 加快生成NK的一些注意事项
- VC2008如何生成及使用DLL
- 分组后查找每组的前N条记录
- 访问List的itemRenderer的组件中定义的方法
- Delphi的类与继承
- Spy++原理初探
- 叩响C#之门
- 大范甘迪
- between..and-->open bound or close bound?
- SQL查询慢的48个原因分析
- JavaScript 异步调用框架 (Part 1 - 问题 & 场景)
- What's blocking my lock?