<?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:mx="library://ns.adobe.com/flex/mx"
title="最初のビュー"
creationComplete="initView();"
>
<fx:Script>
<![CDATA[
// List 用
import spark.events.IndexChangeEvent;
// http サーバー関連
import mx.collections.ArrayList;
import mx.rpc.AsyncToken;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
// *****************************************************
// 初期処理
// *****************************************************
public function initView():void {
}
// *********************************************************
// データを WEB から追加
// *********************************************************
public function loadData():void {
parentApplication.logData( "ボタンが押されました" );
srv.url = "http://10.0.2.2/lightbox/list.xml";
// レスポンス結果のデータフォーマット
srv.resultFormat = "e4x";
srv.method = "GET";
// リクエストを実行
var at:AsyncToken = srv.send();
}
// *********************************************************
// リストを選択
// *********************************************************
public function myChangedHandler(event:IndexChangeEvent):void {
// 本来は複数選択用
var selIndices:Vector.<int> = event.currentTarget.selectedIndices;
parentApplication.logData( selIndices[0].toString() );
var selItems:Vector.<Object> = event.currentTarget.selectedItems;
parentApplication.logData( selItems[0].toString() );
// 単体
parentApplication.logData( event.currentTarget.selectedItem.name.toString() );
parentApplication.logData( event.newIndex.toString() );
}
// *****************************************************
// HTTPServiceが成功
// *****************************************************
private function resultHandler(e:ResultEvent):void
{
var dataSet:ArrayList = null;
var aData:Array = new Array();
var idx:int = 0;
for each(var xmlData:XML in e.result.row ) {
aData.push({ icon: xmlData.icon.toString(), name: xmlData.name, idx: idx });
idx++;
}
dataSet = new ArrayList(aData);
base.dataProvider = dataSet;
}
// *****************************************************
// HTTPServiceでエラーが発生した
// *****************************************************
private function faultHandler(e:FaultEvent):void
{
parentApplication.logData("HTTPService失敗\n\n理由 : " + e.fault.message);
}
]]>
</fx:Script>
<fx:Declarations>
<mx:HTTPService id="srv" showBusyCursor="true"
result="resultHandler(event)"
fault="faultHandler(event)" />
</fx:Declarations>
<s:Button
x="42" y="27"
width="131" height="60"
label="ロード"
click="loadData()" />
<s:BorderContainer
width="100%"
height="100%"
y="100"
>
<s:List
id="base"
width="100%"
height="100%"
change="myChangedHandler(event);"
>
<s:itemRenderer>
<fx:Component>
<s:ItemRenderer>
<s:HGroup>
<s:Image source="{data.icon}" />
<s:Label text="{data.name}" />
<s:Button
label="ロード"
click="parentApplication.clickData( { idx:data.idx, name: data.name, icon: data.icon } )" />
</s:HGroup>
</s:ItemRenderer>
</fx:Component>
</s:itemRenderer>
<s:ArrayList>
</s:ArrayList>
</s:List>
</s:BorderContainer>
</s:View>