<?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[
// LogCat 出力用
import mx.logging.targets.*;
import mx.logging.*;
// List 用
import spark.events.IndexChangeEvent;
// http サーバー関連
import mx.collections.ArrayList;
import mx.rpc.AsyncToken;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
// LogCat
private var logger:ILogger = Log.getLogger("MyLogger");
// *****************************************************
// 初期処理
// *****************************************************
public function initView():void {
// ログ出力準備
var traceTarget:TraceTarget = new TraceTarget();
traceTarget.level = LogEventLevel.ALL;
traceTarget.filters = ["*"];
traceTarget.includeDate = false;
traceTarget.includeTime = false;
traceTarget.includeLevel = false;
traceTarget.includeCategory = false;
Log.addTarget(traceTarget);
}
// *********************************************************
// データを WEB から追加
// *********************************************************
public function loadData():void {
logger.info( "ボタンが押されました" );
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;
logger.info( selIndices[0].toString() );
var selItems:Vector.<Object> = event.currentTarget.selectedItems;
logger.info( selItems[0].toString() );
// 単体
logger.info( event.currentTarget.selectedItem.toString() );
logger.info( event.newIndex.toString() );
}
// *****************************************************
// HTTPServiceが成功
// *****************************************************
private function resultHandler(e:ResultEvent):void
{
var dataSet:ArrayList = null;
var aData:Array = new Array();
for each(var xmlData:XML in e.result.row.name ) {
aData.push({ name: xmlData, icon: "https://lh4.googleusercontent.com/-qGsOjUoCvyw/T-VZ62iPMSI/AAAAAAAAG5Y/O0NhvMUvm9U/s20/_img.png" });
}
dataSet = new ArrayList(aData);
base.dataProvider = dataSet;
}
// *****************************************************
// HTTPServiceでエラーが発生した
// *****************************************************
private function faultHandler(e:FaultEvent):void
{
logger.info("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:HGroup>
</s:ItemRenderer>
</fx:Component>
</s:itemRenderer>
<s:ArrayList>
<fx:Object name="固定リストデータ1" icon="https://lh4.googleusercontent.com/-qGsOjUoCvyw/T-VZ62iPMSI/AAAAAAAAG5Y/O0NhvMUvm9U/s20/_img.png" />
<fx:Object name="固定リストデータ2" icon="https://lh4.googleusercontent.com/-qGsOjUoCvyw/T-VZ62iPMSI/AAAAAAAAG5Y/O0NhvMUvm9U/s20/_img.png" />
<fx:Object name="固定リストデータ3" icon="https://lh4.googleusercontent.com/-qGsOjUoCvyw/T-VZ62iPMSI/AAAAAAAAG5Y/O0NhvMUvm9U/s20/_img.png" />
</s:ArrayList>
</s:List>
</s:BorderContainer>
</s:View>