#xml #flex4 #adobe
#xml #flex4 #adobe
Вопрос:
У меня есть HTML-файл со следующим кодом в виде списка продуктов
<productstore>
<product id='A1'>
<image lbl="Apple" src="assets/apple.png" />
<price>$11.00</price>
<description>Keeps doctor away</description>
<code>ap01</code>
</product>
</productstore>
Я хочу отобразить изображение с названием и ценой на холсте (Flex с flash Builder 4.5). Я последовал примеру, приведенному в ссылке
http://blog.flexexamples.com/2008/03/08/creating-a-simple-image-gallery-with-the-flex-tilelist-control/
<mx:XML id="xml" source="prod.xml" />
<mx:XMLListCollection id="xmlListColl" source="{xml.image}" />
<mx:TileList id="tileList" x="492" y="10" width="255" height="316" columnCount="2"
columnWidth="125" dataProvider="{xmlListColl}"
itemRenderer="TileListItemRenderer" rowCount="4" rowHeight="100"
verticalScrollPolicy="on"/>
Также рассматриваемая мной модификация заключается в добавлении dragAccept, а не события щелчка, в отличие от примера.
Это мой TileListItemRenderer
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
x="492" y="10" width="255" height="316"
horizontalAlign="center"
verticalAlign="middle">
<mx:Image source="{data.@src}" />
<mx:Label text="{data.@lbl}" />
</mx:VBox>
Когда я создаю и запускаю список, он пуст, не уверен, чего мне не хватает. Будем признательны за любую помощь.
Теперь я изменил код, пытаясь реализовать следующую ссылку, и снова застрял:http://blog.flexexamples.com/2008/03/29/dynamically-loading-xml-files-using-the-httpservice-tag /
main.mxml
private function init():void
{
var srcUrl:String = FlexGlobals.topLevelApplication.application.parameters.srcUrl;
if(srcUrl) {
ViewSource.addMenuItem(this, srcUrl);
}
loadProducts('prod.xml');
}
private function loadProducts(src:String):void {
httpService.url = src;
httpService.send();
}
private function httpService_result(evt:ResultEvent):void {
var xmlList:XMLList = XML(evt.result).product.image;
xmlListColl = new XMLListCollection(xmlList);
}
Itemrenderer
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
x="492" y="10" width="255" height="316" >
<mx:Image source="{data.image}" />
<mx:Label text="{data.name}" />
</mx:Canvas>
xml
<productlist>
<product>
<name>Apple</name>
<image>assets/apple.png</image>
<price>$11.00</price>
<description>Keeps doctor away</description>
<code>ap01</code>
</product>
</productstore>
По-прежнему безуспешно….
Ответ №1:
Переменная {data} связана с узлом xml. Итак, если вы хотите ссылаться на значение «src», правильное выражение привязки должно быть:
{data.image.@src}
Попробуйте это и сообщите нам о результатах.