访问List的itemRenderer的组件中定义的方法?-阿里云开发者社区

开发者社区> 技术小胖子> 正文

访问List的itemRenderer的组件中定义的方法?

简介:
+关注继续查看
如何引用一个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>
 
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>
 
运行演示,输入呼叫的实例位置1-9:我输入3,然后单击按钮:
可见调用了实例方法。
 
注:走了不少弯路,起初我以为通过List的getChildAt()可以得到renderer的引用,后来发觉不是,通过Alert它发现其实getChildAt(3)得到的是ListBaseContentHolder的实例,后查了查ListBaseContentHolder得方法里面有个listItems数组放着每一项的引用,于是有了引用什么都好说了。




本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/100683,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Mybatis为实体类定义别名typeAliases
Mybatis为实体类定义别名typeAliases   首先为大家科普一下,Mybatis事实上就是Ibatis。它是由Ibatis更名而来。 最近在学Mybatis的知识,在讲到为实体类定义别名是有两个小知识与大家共勉。
1096 0
Java Visitor Pattern(访问者模式)
在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。
652 0
自定义QGraphicsItem选中样式
简述 在 Scene 中添加 QGraphicsItem 后,当选中该 item 时,会看到边缘区域出现虚线,感觉不太美观。下面,我们来讲解如何去掉虚线并自定义选中样式。 简述 默认样式 虚线的由来 去掉虚线 自定义选中样式 默认样式 以椭圆为例,其它如:矩形、多边形等 item 类似。 // 构建一个椭圆 QGraphicsEllipseItem
3376 0
git学习------&gt;在CenterOS系统上安装GitLab并自定义域名访问GitLab管理页面
目前就职的公司一直使用SVN作为版本管理,现在打算尝试从SVN迁移到Git。安排我来预言并搭建好相关的环境以及自己尝试使用Git。今天我就尝试在Center OS系统上安装GitLab,现在在此记录一下整个安装过程。
3376 0
自定义QGraphicsItem
简述 QGraphicsItem 是场景中 item 的基类。图形视图提供了一些典型形状的标准 item,例如:矩形 ( QGraphicsRectItem )、椭圆 ( QGraphicsEllipseItem ) 、文本项 ( QGraphicsTextItem )。当这些不满足需求时(例如:在一些复杂的工作流场景中),往往需要自定义,通常的做法就是继承 QGraphi
2495 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载