画像を色から検索をFlexで作ってみたよ
http://moeten.info/hatena/20071114_photoxml/bin/main.html
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundGradientColors="[#ffffff, #ffffff]" viewSourceURL="srcview/index.html"> <mx:Style> .my{ borderColor: #b7babc; borderThickness: 2; dropShadowEnabled: true; backgroundColor:#ffffff; borderColor:#ff80ff; cornerRadius:3; themeColor:#ff80ff; borderStyle:solid; } </mx:Style> <mx:Script> <![CDATA[ import mx.effects.Resize; import mx.events.DragEvent; import mx.core.DragSource; import mx.core.UIComponent; import mx.core.IFlexDisplayObject; import mx.managers.DragManager; import mx.containers.Canvas; import mx.controls.Image; import mx.effects.Rotate; import mx.effects.Move; import mx.effects.Effect; public var myXML:XML; public var myLoader:URLLoader; //カラーピッカーが設定されたら呼び出される関数 private function get_image(event:Event):void{ myXML = new XML(); var color:String = colorpic.selectedColor.toString(16); //00FFccなどのように先頭に00が来るとFFCCとなるためケア if( color.length == 4 ){ color = "00" + color; } //XMLの取得 var XML_URL:String = "http://moeten.info/maidcafe/?&m=image_search&type=xml&color=" + color; var myXMLURL:URLRequest = new URLRequest(XML_URL); myLoader = new URLLoader(myXMLURL); myLoader.addEventListener("complete", xmlLoaded2); } //XMLローダー public function xmlLoaded2(evtObj:Event):void { myXML = XML(myLoader.data); var i:int = 0; for( i = 0 ; i < myXML.item.length(); i ++ ){ add_image( myXML.item[i].url ); } } //画像をステージに追加 public function add_image(url:String):void{ //キャンバスの作成 var mycanvas:Canvas = new Canvas(); mycanvas.width = 80; mycanvas.height = 80; mycanvas.horizontalScrollPolicy = "off"; mycanvas.verticalScrollPolicy = "off"; mycanvas.x = Math.round( Math.random()*200 ); mycanvas.y = Math.round( Math.random()*200 ); mycanvas.styleName = "my"; //画像の作成 var image:Image = new Image(); image.source = url; image.width = 100; image.height = 100; image.enabled = false; //ステージにアッド mycanvas.addChild(image); mycanvas.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown); mycanvas.addEventListener(MouseEvent.MOUSE_UP,onMouseUp); this.addChild(mycanvas); //ムーブ var move:Move = new Move(); move.target = mycanvas; move.yTo = Math.round( Math.random()*200 )+100; move.xTo = Math.round( Math.random()*500 )+100; move.duration = 1000; move.play(); //回転 var rotate:Rotate = new Rotate(); rotate.originX = -50; rotate.originY = -50; rotate.duration = 1000; rotate.target = mycanvas; rotate.angleFrom = Math.round( Math.random()*100 ); rotate.angleTo = Math.round( Math.random()*100 ); rotate.play(); } //ドラッグ関係(未だ勉強中 public function onMouseDown(event:MouseEvent):void { event.target.startDrag(); //parent.setChildIndex( this , parent.numChildren - 1); } //ドラッグ中の更新 public function onMouseMove(event:MouseEvent):void { } //ドラッグ終了 public function onMouseUp(event:MouseEvent):void { event.target.stopDrag(); } ]]> </mx:Script> <mx:ColorPicker x="226" y="35" width="30" height="30" styleName="my" selectedColor="#FF80FF" change="get_image(event)" id="colorpic" enabled="true"/> </mx:Application>