homeへのリンクです。

FlexBuilderをマスターする 2

2008年09月15日

Vは、とりあえず以下のような感じ。

ソースは以下のような感じ。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  
   layout="absolute" backgroundColor="0xFFFFFF" 
   xmlns:v="customcomponent.*" 
   applicationComplete="init()" borderColor="#FFFFFF">
   <mx:Script>
      <![CDATA[
         import jp.co.example.amazon.*;
         import jp.co.example.core.data.*;
         import jp.co.example.core.event.*;
         import jp.co.example.core.load.*;
            private var urlmanager:URLManager=new URLManager();
            private var xmlloader:XMLLoader=new XMLLoader();
            private var xmldatamanager:XMLDataManager=new XMLDataManager();
            private function init():void{
               urlmanager.init();
               loadXML();
            }
            private function loadXML():void{
               var urlstr:String=urlmanager.makeURLStr('ItemSearch',['Flash','Books','Images']);
               xmlloader.addEventListener(XMLLoader.LOAD_XML_COMPLETE,onLoadXML);
               var xml:XML=<xml url=""/>;
               xml.@url=urlstr;
               xmlloader.loadXML(xml);
            }
            private function onLoadXML(ce:CustomEvent):void{
               xmldatamanager.datasource=XML(ce._target.data);
               setImages();
            }
            private function setImages():void{
               namespace amecs = "http://webservices.amazon.com/AWSECommerceService/2008-08-19";
               use namespace amecs;
               hboximages.init(xmldatamanager.datasource.Items.Item.MediumImage);
            }
      ]]>
   </mx:Script>
   <v:HBoxImages id="hboximages" borderColor="#FFFFFF" backgroundColor="#FFFFFF"/>
</mx:Application>

注意点は、E4XでXMLデータを扱う部分で、XMLにネームスペースが定義されているのでuse namespaceでネームスペースを指定してから操作を始めているところ。
以前は、QName()とnamespace()を使っていたが、今回からはuse namespaceにすることにした。
QName(),namespace()を使うと、汎用性がもてるのだが、結局のところXMLデータの構造は作り手が決めることになるので、ドキュメントでどんなネームスペースがどこに定義されているかは確認しなければならない。
それなら、明確に指定した方がわかりやすいかなあという感じ。

サムネイルのサイズと、並べるときの位置を調整する必要がありそう。
あと、床への映り込みがまだない。