如何从itemclick处理程序mx:list链接到服务中的url

时间:2012-09-27 08:49:36

标签: actionscript-3 flash flex

所以这个让我无法在任何地方找到一个好的解释,所以我有一个php服务,它以二进制形式提供一系列对象回到我的flash应用程序。服务被送入mx:list,服务有4个字段 countrycode,citycode,city和url。我需要做的是调用每个对象的url并将其提供给这个itemClickHandler这是我试过的另外两个关于RIAstar的答案我在这里做错了什么?,

protected function citylist_itemClickHandler(event:ListEvent):void
    {
        var data:City = citylist.selectedItem as City;
        navigateToURL(new URLRequest(data.url));

    }

这是带有getCitysResult作为对象的mx:list

    <mx:List includeIn="data" x="28" y="10" width="312" height="255" id="citylist" dataProvider="{getCitysResult.lastResult}" labelField="city" itemClick="citylist_itemClickHandler(event)">
    </mx:List>

我需要做的是让这个列表的每一行都有一个鼠标点击链接

1 个答案:

答案 0 :(得分:2)

ListEvent有一个属性rowIndex,其中包含刚刚单击的行的索引。您可以使用此索引从dataProvider中检索正确的元素。

var city:City = cityList.dataProvider.getItemAt(event.rowIndex) as City;
navigateToURL(new URLRequest(city.url));

或直接在服务结果对象上(由于它是绑定的,它是相同的):

var city:City = getCitysResult.lastResult.getItemAt(event.rowIndex) as City;

(除非lastResult对象是一个数组:然后它将是getCitysResult.lastResult[event.rowIndex]

或(最短路)使用List的selectedItem属性:

var city:City = cityList.selectItem as City;