drawTrianglesを使わないジニーっぽいエフェクト

by dotton
wonderfl初心者です。
ジニーエフェクト的なものを目指して作成しました。
左上のボタンを押すと、画像がy軸方向へ進むにつれて収縮していくエフェクトですが、
ローカルでは表示されてもwonderfl上では再生されません。
原因がよくわからないので御教授願います。

<追記 10.03.12>
o8queさんのアドバイス通り、crossdomain.xmlの書き換えで修正できました!
初歩的なことですみません。
ありがとうございました。
♥0 | Line 92 | Modified 2010-03-12 16:59:35 | MIT License
play

ActionScript3 source code

/**
 * Copyright dotton ( http://wonderfl.net/user/dotton )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/dybb
 */

package {
	
	/*
	wonderfl初心者です。
	ジニーエフェクト的なものを目指して作成しました。
	左上のボタンを押すと、画像がy軸方向へ進むにつれて収縮していくエフェクトですが、
	ローカルでは表示されてもwonderfl上では再生されません。
	原因がよくわからないので御教授願います。
	
	<追記 10.03.12>
	o8queさんのアドバイス通り、crossdomain.xmlの書き換えで修正できました!
	初歩的なことですみません。
	ありがとうございました。
	*/
	
	import flash.display.Graphics;
    import flash.display.Sprite;

	import flash.events.Event;
	import flash.events.MouseEvent;
    
    [SWF(width="500", height="500", backgroundColor="0xFFFFFF", frameRate="30")]
    import flash.display.Bitmap;
    import flash.net.URLRequest;
 	import flash.net.URLLoader;
	import flash.display.Loader;
    import flash.text.TextField;
    import flash.text.TextFieldType;
	import flash.system.Security;
    import flash.display.BitmapData;
    import flash.geom.Matrix;
	import flash.geom.ColorTransform;
	import flash.display.BlendMode;
	import flash.display.Graphics;
	import flash.display.Shape;
    
    import flash.display.Shape;
    	
    	
    public class test extends Sprite {
   	 	private	var _sp:Sprite = new Sprite();
    		private var _url:String = "http://www.grasp.co.jp/tetsuya/wonderfl/dojira.png";
		private var loader:Loader;
		private var bmp:Bitmap = new Bitmap();
    		private var spArr:Array;
    		
        public function test() {
            // write as3 code here..
            Security.loadPolicyFile("http://www.grasp.co.jp/crossdomain.xml");
            
            loader = new Loader();
            loader.load(new URLRequest(_url));
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComp);
        }
         
        private function traceTxt(_str:String):void{
    			var traceTxtField:TextField;
            traceTxtField = new TextField();
        		traceTxtField.type = TextFieldType.DYNAMIC;
        		traceTxtField.appendText(_str);
            addChild(traceTxtField);
        }
        private function loadComp(e:Event):void{
			loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadComp);
        		_sp.addChild(loader);
        		_sp.x =(stage.stageWidth-loader.width)/2;
        		_sp.y =(stage.stageHeight-loader.height)/2;
        		addChild(_sp);
        		getBitmap();
        		
        }
        
        private function getBitmap():void{
        	
			//オリジナルのビットマップ
        	
        		spArr = new Array();
			var btn_sp:Sprite = new Sprite();
			var gr:Graphics = btn_sp.graphics;
			gr.beginFill(0xFF00FF);
			gr.drawRect(10,10,50,50)
			gr.endFill();
			addChild(btn_sp);
			btn_sp.buttonMode =true;
			
			var color : ColorTransform = new ColorTransform(1,1,1,1,0,0,0,0);
        		for(var i:int = 0; i<stage.stageHeight; ++i){
        			var bmd:BitmapData = new BitmapData(stage.stageWidth, 1, true)
				var bm:Bitmap = new Bitmap(bmd);
				var temp_sp:Sprite = new Sprite();
				temp_sp.addChild(bm);
				spArr.push(temp_sp);
				var matrix : Matrix = new Matrix();
				matrix.translate(0, -i);
				bmd.draw(_sp, matrix, color, BlendMode.NORMAL);
				temp_sp.y = i+_sp.y;
				temp_sp.x = _sp.x;
				addChild(temp_sp);
        		}
        		_sp.visible = false;
			_sp.alpha =0.5;
        		
			btn_sp.addEventListener(MouseEvent.CLICK, clickHandler);
        }
        
        private function clickHandler(e:Event):void{
			stage.removeEventListener(Event.ENTER_FRAME, enterHandler);
			for(var i:int=0; i<spArr.length; i++){
				spArr[i].y = -i;
				spArr[i].scaleX = 1;
			}
			addEventListener(Event.ENTER_FRAME, enterHandler);
		}
		private function enterHandler(e:Event):void{
			for(var i:int=0; i<spArr.length; i++){
				spArr[i].y += 10;
				var per:Number = (654-spArr[i].y)/654;
				per = per < 0 ? 0:per;
				spArr[i].scaleX = per*per*3;
			}
		}
    }
}

Forked