Flash10用の簡単なサンプルを作ってみたよ
Flash10用の簡単なサンプルを作ってみました。
こんな感じ
http://moeten.info/flex/20081016_fp10Test/bin-release/test03.html
ただCanvasに追加して画像のzを設定しただけです。
デフォルトでz軸が利用できるのはラクチンだね。
ソースコードはこちら
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="800" height="600" backgroundGradientColors="[0x000000,0xcccccc]" layout="absolute" creationComplete="init()"> <mx:Script> <![CDATA[ import mx.controls.Image; //初期化関数 private function init():void{ hts.send(); } //画像をキャンバスに追加 private var imArr:Array = new Array(); private function onResult():void{ var len:int = hts.lastResult.item.length(); for( var i:int = 0 ; i < len ; i ++ ){ var im:Image = new Image(); im.width = 100; im.height = 100; im.x = Math.random() * 700; im.y = Math.random() * 500; im.z = Math.random() * 800; im.source = hts.lastResult.item[i].image.image1; im.addEventListener( MouseEvent.CLICK , onImageClick ); imArr.push(im); myCanvas.addChild( im ); } //z座標で並び替え mySortZ(); //正面から見えるように回転 myCanvas.rotationX = 50; //マウスの位置でキャンバスを回転 this.addEventListener(MouseEvent.MOUSE_MOVE , onMove ); } //zソート private var sort:Array = new Array(); private function mySortZ():void{ var len:int = hts.lastResult.item.length(); for( var i:int = 0 ; i < len ; i ++ ){ sort[i] = {"z":imArr[i].z,"im":imArr[i]}; } sort.sortOn( "z" , Array.DESCENDING|Array.NUMERIC ); for( var i:int = 0 ; i < len ; i ++ ){ myCanvas.setChildIndex( sort[i].im , i ); } } //マウスムーブ private function onMove(e:MouseEvent):void{ myCanvas.rotationX = -( this.width/2 - this.mouseY)*0.04; myCanvas.rotationY = ( this.height/2 - this.mouseX)*0.04; } //画像クリック時 private function onImageClick(e:Event):void{ var im:Image = e.currentTarget as Image; im.z -= 100; mySortZ(); } ]]> </mx:Script> <mx:HTTPService id="hts" url="http://moeten.info/maidcafe/?m=api&tid=13&type=shop" resultFormat="e4x" result="onResult()"/> <mx:Canvas id="myCanvas" width="100%" height="100%" horizontalScrollPolicy="off" verticalScrollPolicy="off" /> </mx:Application>