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; } } } } drawTrianglesを使わないジニーっぽいエフェクト