我需要显示一个列表,其中每个项目由一个复选框和一个标签组成。为此,我为List创建了一个自定义的itemrenderer类。创建和应用渲染器类非常简单,并且所有内容都可以正确显示。现在,我需要为渲染器类添加一个函数,该函数将执行类似于在复选框被选中或取消选择时更改文本颜色的操作。我知道CheckBox有一个'更改'事件,但是当我试图听这个事件时,我碰到了一个catch-22。我需要将渲染器类的'mouseChildren'属性设置为false以防止List和Checkbox的鼠标事件相互干扰。不幸的是,将该属性设置为false也会阻止复选框发生更改事件,所以我的处理程序永远不会被调用。我完全沉迷于此,任何帮助将不胜感激。检测项目渲染器中的复选框选择
仅供参考,这里是我的渲染器类的代码:
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true"
mouseChildren="false"
width="100%">
<s:states>
<s:State name="normal"/>
<s:State name="hovered"/>
<s:State name="selected"/>
</s:states>
<s:HGroup left="10"
right="0"
top="0"
bottom="0"
verticalAlign="middle"
gap="3">
<s:CheckBox selected.selected="true"
change="{handleCBChange()}"/>
<s:Label text="{data.value}"
width="100%"/>
</s:HGroup>
<fx:Script>
<![CDATA[
public function handleCBChange():void
{
trace("Checkbox clicked");
}
]]>
</fx:Script>
</s:ItemRenderer>