0

所以这个让我无法在任何地方找到一个好的解释,所以我有一个 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>

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

4

1 回答 1

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 对象是一个 Array: 那么它将是getCitysResult.lastResult[event.rowIndex]

或(最短的方法)使用列表的selectedItem属性:

var city:City = cityList.selectItem as City;
于 2012-09-27T09:32:38.890 回答