MXMLTest07 External XML Read Test (外部XMLから画像&リンクURLを取得処理)
forked from MXMLTest06 External XML Read Test (外部XMLから画像URLを取り出して画像表示) (diff: 145)
ActionScript3 source code
/**
* Copyright siouxcitizen ( http://wonderfl.net/user/siouxcitizen )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/mtqG
*/
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="500" height="500" backgroundColor="#333333">
<mx:Script>
<![CDATA[
//Yahooショッピングから"出石そば"で検索した結果(XML)を処理
//取得した外部XMLから画像URLを取り出して画像を表示
//その外部XMLからリンクURLも取り出し、表示画像にリンク機能追加
//Switch構文によるベタベタコーディングでムリヤリ画像表示&リンク機能です。。。
//XMLデータはDataGrid等使って表示したほうがいいのでしょうか???
//下のほうにあるコンボボックスの値を追加、または変更すれば検索キーワードの追加・変更が可能です
//16件しか検索結果表示できないけれど。。。
private var query:String = "出石そば";//検索キーワード デフォルト値設定
private var URL:String; //クエリ先URL
private var loader:URLLoader;
private var xmlData:XML;
private var ns:Namespace = new Namespace("urn:yahoo:jp:itemSearch");
private var link00:String; //画像リンク先保持用
private var link01:String;
private var link02:String;
private var link03:String;
private var link04:String;
private var link05:String;
private var link06:String;
private var link07:String;
private var link08:String;
private var link09:String;
private var link10:String;
private var link11:String;
private var link12:String;
private var link13:String;
private var link14:String;
private var link15:String;
//クエリ先URLと検索キーワードを結合後、クエリ先URLへ検索を行う
private function testIamgeDisplay():void {
//外部XML処理中はボタンを不活性化
btnTest.enabled = false;
//URL+クエリ情報設定
URL = "http://shopping.yahooapis.jp/ShoppingWebService/V1/itemSearch?appid=uQ_E1kmxg64.0fo1fkMwTnvcEmBn.foaHDXp0MF8WvUXD3jQcDaDIAuC0b6zRFmh3BT2umN6&query=" + escapeMultiByte(query);
var request:URLRequest = new URLRequest(URL);
request.url = URL;
loader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, completeHandler);
try {
loader.load(request);
} catch (error:Error) {
trace("Unable to load requested document.");
}
}
//クエリ先より取得したXMLを処理
private function completeHandler(event:Event):void {
xmlData = new XML(loader.data);
var count:uint = 0;
default xml namespace = ns; //名前空間設定
//取得した外部XMLから画像&リンク先URLを取り出して処理
for each(var element:Object in xmlData.Result.Hit){
var imgURL:String = element.Image.Small;
var linkURL:String = element.Url;
//画像&リンク先URLを設定する
ctrlDispInfo(count, imgURL, linkURL);
count++;
}
btnTest.enabled = true; //外部XML処理後にボタンを活性化
}
//変更されたコンボボックスの値をセット
private function onChangeCombo():void {
query = String(comboTest.selectedItem);
}
//外部XMLから取得した画像URLとリンク先URLを設定
private function ctrlDispInfo(count:uint, imgURL:String, linkURL:String):void{
switch (count) {
case 0:
image00.source = imgURL;
link00 = linkURL;
break;
case 1:
image01.source = imgURL;
link01 = linkURL;
break;
case 2:
image02.source = imgURL;
link02 = linkURL;
break;
case 3:
image03.source = imgURL;
link03 = linkURL;
break;
case 4:
image04.source = imgURL;
link04 = linkURL;
break;
case 5:
image05.source = imgURL;
link05 = linkURL;
break;
case 6:
image06.source = imgURL;
link06 = linkURL;
break;
case 7:
image07.source = imgURL;
link07 = linkURL;
break;
case 8:
image08.source = imgURL;
link08 = linkURL;
break;
case 9:
image09.source = imgURL;
link09 = linkURL;
break;
case 10:
image10.source = imgURL;
link10 = linkURL;
break;
case 11:
image11.source = imgURL;
link11 = linkURL;
break;
case 12:
image12.source = imgURL;
link12 = linkURL;
break;
case 13:
image13.source = imgURL;
link13 = linkURL;
break;
case 14:
image14.source = imgURL;
link14 = linkURL;
break;
case 15:
image15.source = imgURL;
link15 = linkURL;
break;
default:
break;
}
}
//画像クリック時、指定されたリンク先にとばす
private function getURL(imgNum:String):void{
switch (imgNum) {
case "0":
navigateToURL(new URLRequest(link00));
break;
case "1":
navigateToURL(new URLRequest(link00));
break;
case "2":
navigateToURL(new URLRequest(link02));
break;
case "3":
navigateToURL(new URLRequest(link03));
break;
case "4":
navigateToURL(new URLRequest(link04));
break;
case "5":
navigateToURL(new URLRequest(link05));
break;
case "6":
navigateToURL(new URLRequest(link06));
break;
case "7":
navigateToURL(new URLRequest(link07));
break;
case "8":
navigateToURL(new URLRequest(link08));
break;
case "9":
navigateToURL(new URLRequest(link09));
break;
case "10":
navigateToURL(new URLRequest(link10));
break;
case "11":
navigateToURL(new URLRequest(link11));
break;
case "12":
navigateToURL(new URLRequest(link12));
break;
case "13":
navigateToURL(new URLRequest(link13));
break;
case "14":
navigateToURL(new URLRequest(link14));
break;
case "15":
navigateToURL(new URLRequest(link15));
break;
default:
break;
}
}
]]>
</mx:Script>
<mx:Button id="btnTest" click="testIamgeDisplay();" x="10" y="10" label="検索" enabled="true"/>
<mx:ComboBox id="comboTest" x="70" y="10" change="onChangeCombo()">
<mx:ArrayCollection>
<mx:String>出石そば</mx:String>
<mx:String>但馬牛</mx:String>
<mx:String>ズワイガニ</mx:String>
</mx:ArrayCollection>
</mx:ComboBox>
<mx:Image id="image00" x="10" y="50" click="getURL('0')"/>
<mx:Image id="image01" x="110" y="50" click="getURL('1')"/>
<mx:Image id="image02" x="210" y="50" click="getURL('2')"/>
<mx:Image id="image03" x="310" y="50" click="getURL('3')"/>
<mx:Image id="image04" x="10" y="150" click="getURL('4')"/>
<mx:Image id="image05" x="110" y="150" click="getURL('5')"/>
<mx:Image id="image06" x="210" y="150" click="getURL('6')"/>
<mx:Image id="image07" x="310" y="150" click="getURL('7')"/>
<mx:Image id="image08" x="10" y="250" click="getURL('8')"/>
<mx:Image id="image09" x="110" y="250" click="getURL('9')"/>
<mx:Image id="image10" x="210" y="250" click="getURL('10')"/>
<mx:Image id="image11" x="310" y="250" click="getURL('11')"/>
<mx:Image id="image12" x="10" y="350" click="getURL('12')"/>
<mx:Image id="image13" x="110" y="350" click="getURL('13')"/>
<mx:Image id="image14" x="210" y="350" click="getURL('14')"/>
<mx:Image id="image15" x="310" y="350" click="getURL('15')"/>
</mx:Application>