代码先贴出来
<mx:Repeater id="pp" dataProvider="{myData.row}">
<mx:Button height="90" width="89" label="{(pp.currentItem.Name)}"/>
</mx:Repeater>
其中myData 是通过HTTPService回调函数里返回的Object,
[Bindable]
public var myData:Object;
public function shopHandler(event:ResultEvent):void
{
myData=event.result.shop;
}
现在想要引用Button中的label的值,怎么引用
------解决方案--------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="top"
horizontalAlign="center"
backgroundGradientColors="[0x000000,0x323232]"
paddingTop="0"
viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
[Bindable]
private var ac:ArrayCollection=new ArrayCollection([{name: 1}, {name: 3}, {name: 2}, {name: 4}, {name: 5}]);
]]>
</mx:Script>
<mx:Panel title="Repeater Example"
layout="vertical"
color="0xffffff"
borderAlpha="0.15"
paddingTop="10"
paddingRight="10"
paddingBottom="10"
paddingLeft="10"
horizontalAlign="center">
<mx:Text width="100%"
color="0x323232"
textAlign="center"
text="Use the Repeater class to create multi-Button controls in a Tile container."/>
<mx:Tile direction="horizontal"
borderStyle="inset"
horizontalGap="10"
verticalGap="10"
color="0x323232"
paddingLeft="10"
paddingTop="10"
paddingBottom="10"
paddingRight="10">
<mx:Repeater id="rp"
dataProvider="{ac.source}">
<mx:Button height="24"
width="50"
label="{String(rp.currentItem.name)}"
click="Alert.show(String(event.currentTarget.getRepeaterItem().name) + ' pressed')"/>
</mx:Repeater>
</mx:Tile>
</mx:Panel>
</mx:Application>
------解决方案--------------------
是不是这个意思?你点击按钮的时候,不知道当前按钮应该对应dataProvider中的哪条记录,也就是不知道下标是什么
- XML code
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*"> <mx:Script> <![CDATA[ import mx.controls.Button; import mx.controls.Alert; private function onClickHandler(event:Event):void { var myButton:MyButton = event.target as MyButton; if (myButton != null) { // 从按钮中获得dataProvider所对应的下标,即可以获得dataProvider中按钮对应的相关信息。 var currentIndex:int = myButton.index; Alert.show(pp.dataProvider[currentIndex]); } } ]]> </mx:Script> <mx:Repeater id="pp" dataProvider="{[1,2,3,4,5]}"> <!-- 通过index="{pp.currentIndex}" 把当前Repeater的下标传入按钮中 --> <local:MyButton height="90" width="89" label="{pp.currentItem}" index="{pp.currentIndex}" click="onClickHandler(event)"/> </mx:Repeater> </mx:Application>