MXMLTest07 External XML Read Test (外部XMLから画像&リンクURLを取得処理)

by siouxcitizen forked from MXMLTest06 External XML Read Test (外部XMLから画像URLを取り出して画像表示) (diff: 145)
♥3 | Line 205 | Modified 2009-04-19 19:00:50 | MIT License
play

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>

Forked