我在datagrid项目渲染器中使用了播放按钮图像,如果我单击图像然后移动到另一个状态(通过使用currentState ='play')。所以我尝试了:
<mx:DataGridColumn textAlign="center" headerText="" dataField="col2">
<mx:itemRenderer>
<mx:Component>
<mx:HBox textAlign="center" paddingLeft="17">
<mx:Image source="@Embed(source='image/play_button.png')" click="currentState='Playsystem'"/>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
但它显示错误,如未定义状态'Playsystem'。但我已经有了州。我错了什么?为什么错误显示这样?
答案 0 :(得分:0)
您收到此错误,因为currentState不是Component的已定义属性。
您需要将click="currentState='Playsystem'"
更改为click="this.parent.parent.parent['currentState'] = 'Playsystem'"
如:
<mx:DataGrid bottom="0" top="37" left="0" dataProvider="{dataAry}" width="340">
<mx:columns>
<mx:DataGridColumn textAlign="center" headerText="" dataField="col2">
<mx:itemRenderer>
<mx:Component>
<mx:HBox textAlign="center" paddingLeft="17">
<mx:Image source="@Embed(source='125x125.gif')" click="this.parent.parent.parent['currentState'] = 'Playsystem'"/>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
但我不这样做。这有点像黑客。我建议实际为组件编写一个类,让它监听并将click事件发送到容器。 More info