bitmapをコピーしてなんとか成功
spriteコピーできない対策として、bitmapをコピーする方法で対処。
疲れた・・・
package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.text.TextField; import flash.utils.Timer; // 麻雀素材まつセン // http://www4.cty-net.ne.jp/~l6000all/ /** * ... * @author hato */ public class Main extends Sprite { public var tf:TextField = new TextField(); // 各牌 private var img_manz:Array = new Array(); private var img_souz:Array = new Array(); private var img_pinz:Array = new Array(); private var sprite_ary:Array = new Array(); // 読み込んだ数 private var n_request_all:int = 0; private var n_request_now:int = 0; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point /* * 牌画像読み込み * var baseurl:String = "http://192.168.1.11/~hato/bin/img/"; */ var baseurl:String = "img/"; var h_type:Array = ["man", "sou", "pin"]; for (var cnt:String in h_type) { var type:String = h_type[cnt]; for (var i:int = 1; i <= 9; i++) { var str:String = baseurl + type + i + "u.gif"; var imgloader:Loader = new Loader(); imgloader.contentLoaderInfo.addEventListener( Event.COMPLETE, onSub(type, i)); function onSub(type:String, i:int) :Function { return function (e:Event):void{; //trace(e.target.name); OnImageLoadComplete(e, type, i); } ; } imgloader.load(new URLRequest(str)); n_request_all++; } } /* * 表示用スプライトセット。移動しないので固定位置。 */ for (var j:int = 0; j <= 11; j++) { var sprite:Sprite = new Sprite(); //sprite.x = j * 30; sprite_ary[j] = sprite; } } private function onXMLLoad(event:Event):void { var xml:XML = new XML(event.target.data); //trace(xml); var east:String = xml.child("EAST"); //trace("east=" +east); //var line:String = "m:5,s:8,p:3"; var ary:Array = east.split(","); for (var cnt:String in ary) { var unit:String = ary[cnt];// m:5 var unit_ary:Array = unit.split(":"); var type: String = unit_ary[0];// m var num: String = unit_ary[1];// 5 //trace(cnt + type + num); var sprite:Sprite = sprite_ary[cnt] as Sprite; var bitmap: Bitmap; switch (type) { case "m": bitmap = img_manz[num]; break; case "s": bitmap = img_souz[num]; break; case "p": bitmap = img_pinz[num]; break; default: bitmap = img_manz[num]; ; } // bitmap コピー var bitmapData:BitmapData = bitmap.bitmapData.clone(); var cp_bitmap:Bitmap = new Bitmap(bitmapData); sprite.addChild(cp_bitmap); // 大きさ sprite.scaleX = 2.0; sprite.scaleY = 2.0; sprite.x = int(cnt) * 30; /* * 表示&マウスクリック時のイベント定義 */ sprite.addEventListener(flash.events.MouseEvent.CLICK,onClick3(cnt, unit)); function onClick3(cnt: String, str:String) :Function{ return function (e:MouseEvent):void{; //trace("str",str); //trace(e.target.name); onClick(cnt,str); } ; } addChild(sprite); } } private function OnImageLoadComplete(event:Event, type:String, i:int):void { var loader:Loader = Loader(event.target.loader); var bitmap:Bitmap = Bitmap(loader.content); //trace(bitmap); //trace(type + String(i)); switch(type) { case "man": img_manz[i] = bitmap; break; case "sou": img_souz[i] = bitmap; break; case "pin": img_pinz[i] = bitmap; break; default: //trace("other"); img_manz[i] = bitmap; } //img_manz.push(img as Sprite); //var sprite:Sprite = img as Sprite; //sprite.x = i * 30; //sprite.y = int(cnt) * 30; //addChild(sprite); n_request_now++; if (n_request_all == n_request_now) { trace("img complete!"); /* * 情報取得 * var request:URLRequest = new URLRequest( * "http://192.168.1.11/~hato/bin/cgi-bin/test.cgi?What+is+Happens!");// */ var xmlloader:URLLoader = new URLLoader(); var url:URLRequest = new URLRequest( "http://192.168.1.11/~hato/bin/cgi-bin/test.cgi?What+is+Happens!\&" + Math.floor(Math.random() * 1000)//ブラウザキャッシュ対策 ); xmlloader.addEventListener(Event.COMPLETE, onXMLLoad); xmlloader.load(url); } } private function onClick(cnt:String, str:String): void { trace("click cnt=" +cnt+ " str=" +str); } } }
#!/usr/bin/perl print "Content-type: text/plain; charset=utf-8\n\n"; $str = $ENV{"QUERY_STRING"}; print <<END_OF_TEXT; <xml> <EAST>m:7,m:7,s:4,s:5,s:5,s:6,s:6,s:7,p:1,p:8,p:9,j:2</EAST> <RANDOM>$str</RANDOM> </xml> END_OF_TEXT