forked from: Practice No8 崩れる文字列
♥0 |
Line 78 |
Modified 2015-12-29 17:20:02 |
MIT License
archived:2017-03-20 14:00:48
ActionScript3 source code
/**
* Copyright jmbyh521 ( http://wonderfl.net/user/jmbyh521 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/8fpy
*/
// forked from NA8's Practice No8 崩れる文字列
package {
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
import flash.filters.BlurFilter;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.text.TextField;
import flash.text.TextFormat;
[SWF(width=465,height=465,backgroundColor=0xffffff)]
public class FallParticleText extends Sprite {
private var b:Bitmap;
private var bmp:BitmapData;
private var bmd:BitmapData;
private var list:Array=new Array;
private var p_num:uint=0;
private var filter:BlurFilter = new BlurFilter(2,2,1);
public function FallParticleText() {
if(stage){
addEventListener(Event.ADDED_TO_STAGE,init);
}else{
init();
}
}
private function init(e:Event=null):void{
removeEventListener(Event.ADDED_TO_STAGE,init);
var tx:TextField=new TextField();
tx.autoSize="left";
tx.defaultTextFormat
=new TextFormat("_ゴシック"
,80
,0x9966cc
,true);
tx.text="崩れる文字列";
var tw:Number=tx.width;
var th:Number=465; //tx.height;
bmp=new BitmapData(tw,465,true,0);
bmp.draw(tx,null,null,null
,new Rectangle(0,0,int(tw),int(th))
,true);
b=new Bitmap(bmp,"auto",true);
addChild(b);
list=new Array();
for(var i:int=0;i<int(th);i++){
for(var j:int=0;j<int(tw);j++){
var p:Particle = new Particle();
p.x = j;
p.y = i;
//p.vx =0;
p.vy =Math.random()*p.y/5;
p.color32 = bmp.getPixel32(j,i) & 0xccf5f5f5; // & 0xeeffffff;
list.push(p);
}
}
addEventListener(Event.ENTER_FRAME, loop);
}
private function loop(e:Event=null):void{
bmp.applyFilter(bmp,bmp.rect, new Point(0,0),filter);
var p:Particle;
bmp.lock();
var i:uint=0;
while(i<list.length){
p=list[i];
//p.x+=p.vx;
if(p.y<465){p.y+=p.vy;}
bmp.setPixel32(p.x, p.y,p.color32);
i++;
}
bmp.unlock();
}
}
}
class Particle{
public var x:Number;
public var y:Number
public var vx:Number;
public var vy:Number;
public var color32:uint;
}