У меня есть мобильный проект Flex 4.5 (Burrito):
Он состоит из 2 файлов - TextXML.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:MobileApplication
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:components="spark.components.*"
firstView="views.Home">
</s:MobileApplication>
и Home.mxml с 1 кнопкой, 1 списком и 1 HTTPService:
<?xml version="1.0" encoding="utf-8"?>
<s:View
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:components="spark.components.*"
title="Home">
<fx:Script>
<![CDATA[
import mx.collections.*;
import mx.events.*;
import mx.rpc.events.*;
import mx.utils.*;
import spark.events.*;
[Bindable]
public var myColl:XMLListCollection = new XMLListCollection();
public function srvResult(event:ResultEvent):void {
trace(ObjectUtil.toString(event.result));
myColl.source = event.result.pref.user.money;
myList.dataProvider = myColl;
}
public static function myLabelFunc(item:Object):String {
return item.yw;
}
public static function myMessageFunc(item:Object):String {
return item.max;
}
]]>
</fx:Script>
<fx:Declarations>
<s:HTTPService
id="httpSrv"
url="http://preferans.de/user-xml.php?id=OK123195454365"
resultFormat="e4x"
result="srvResult(event)"
fault="trace(event.fault.message)" />
</fx:Declarations>
<s:navigationContent>
<s:Button label="Load XML" click="httpSrv.send()"/>
</s:navigationContent>
<s:List id="myList"
top="0" bottom="0" left="0" right="0"
dataProvider="{myColl}">
<s:itemRenderer>
<fx:Component>
<s:MobileIconItemRenderer
labelFunction="Home.myLabelFunc"
messageFunction="Home.myMessageFunc" >
</s:MobileIconItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:List>
</s:View>
Когда я запускаю свое приложение в отладчике (чтобы я мог видеть вывод трассировки в консоли) и нажимаю кнопку «Загрузить XML», я вижу, что данные XML загружаются нормально из моего PHP-скрипта * * 1014
<pref>
<user id="OK123195454365" first_name="Dmitry"
city="Moscow" money="8815" medals="1">
<money yw="2011-01" max="8815" user="8815"/>
<money yw="2010-52" max="6380" user="1545"/>
<money yw="2010-51" max="8797" user="2094"/>
<money yw="2010-50" max="8446" user="2080"/>
</user>
</pref>
Но, к сожалению, список остается пустым.
У меня такое ощущение, что здесь не хватает мелочи, может быть, событие должно быть отправлено в Список? Я пытался переназначить его dataProvider, как вы можете видеть выше, но это мне не помогает ...
Спасибо! Alex