drawTrianglesを使わないジニーっぽいエフェクト
wonderfl初心者です。
ジニーエフェクト的なものを目指して作成しました。
左上のボタンを押すと、画像がy軸方向へ進むにつれて収縮していくエフェクトですが、
ローカルでは表示されてもwonderfl上では再生されません。
原因がよくわからないので御教授願います。
<追記 10.03.12>
o8queさんのアドバイス通り、crossdomain.xmlの書き換えで修正できました!
初歩的なことですみません。
ありがとうございました。
♥0 |
Line 92 |
Modified 2010-03-12 16:59:35 |
MIT License
archived:2017-03-10 13:03:15
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;
}
}
}
}