box-o-sand/flex-practice/03d4-tilelist/TileListExample.mxml

76 lines
2.5 KiB
Plaintext
Raw Normal View History

2010-02-20 04:03:10 +00:00
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundColor="#FFFFFF"
backgroundAlpha="0"
horizontalAlign="left"
verticalGap="15" horizontalGap="15">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.events.ListEvent;
[Bindable]
private var photoFeed:ArrayCollection = new ArrayCollection();
private function requestPhotos():void {
var params:Object = new Object();
params.format = 'rss_200_enc';
params.tags = searchTerms.text;
photoService.send(params);
}
private function photoHandler(event:ResultEvent):void {
photoFeed = event.result.rss.channel.item as ArrayCollection;
}
//show text message when user selects image
private function showMessage(event:Event):void {
message.text = "You selected: " +
event.currentTarget.selectedItem.title + "\nUploaded by: " +
event.currentTarget.selectedItem.credit;
}
]]>
</mx:Script>
<!-- photo service -->
<mx:HTTPService id="photoService"
url="http://api.flickr.com/services/feeds/photos_public.gne"
result="photoHandler(event)" />
<!-- search -->
<mx:Form>
<mx:FormItem label="Search Term"
direction="horizontal">
<mx:TextInput id="searchTerms" />
<mx:Button label="Search"
click="requestPhotos()" />
</mx:FormItem>
</mx:Form>
<!-- result, data is passed to the itemRenderer by Flex through the data property -->
<mx:TileList id="mylist"
labelField="thumbnail"
dataProvider="{photoFeed}"
width="600" height="200"
paddingTop="25" left="5"
itemClick="showMessage(event)">
<mx:itemRenderer>
<mx:Component>
<mx:VBox width="125" height="125"
paddingRight="5" paddingLeft="5"
horizontalAlign="center">
<mx:Image
height="75" width="75"
source="{data.thumbnail.url}"/>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:TileList>
<mx:Text id="message"
paddingTop="20" />
</mx:Application>