forked from: forked from: forked from: 文字のテスト
♥0 |
Line 76 |
Modified 2010-03-20 09:54:10 |
MIT License
archived:2017-03-09 23:58:51
ActionScript3 source code
/**
* Copyright nayu ( http://wonderfl.net/user/nayu )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/smts
*/
// forked from capoxi's forked from: forked from: 文字のテスト
// forked from yasai's forked from: 文字のテスト
// forked from nacookan's 文字のテスト
package
{
import com.flashdynamix.motion.*;
import flash.display.*;
import flash.events.MouseEvent;
import flash.filters.BlurFilter;
import flash.text.*;
import fl.motion.easing.*;
import net.hires.debug.Stats;
import flash.events.Event;
import flash.net.URLRequest;
import flash.system.LoaderContext;
[SWF(width = "480", height = "480", backgroundColor = "0x000000", fps = "30")]
public class FlashTest extends Sprite {
public function FlashTest() {
addChild( new Stats() );
init();
}
private function init():void
{
//テキストのフォーマット構築
var format:TextFormat = new TextFormat();
//format.font = 'Comic Sans';
format.size = 16;
format.color = 0xffffff;
//表示したい文字の構築
var text:TextField = new TextField();
text.defaultTextFormat = format;
var date:Date = new Date();
var year:int = date.getFullYear();
var month:int = date.getMonth() + 1;
var aDate:int = date.getDate();
var hour:int = date.getHours();
var minu:int = date.getMinutes();
var sec:int = date.getSeconds();
var nowDate:String = year + " / " + month + " / " + aDate + "\n" + hour + " : " + minu + " : " + sec;
text.text = nowDate;
text.autoSize = TextFieldAutoSize.LEFT;
//ビットマップ構築
var bmpd:BitmapData = new BitmapData(text.textWidth, text.textHeight, false, 0x000000);
//ビットマップデータに表示したい文字を割り当てる
bmpd.draw(text);
var s:Number = 2;
var i:Number = 0;
var timeline:TweensyTimeline = new TweensyTimeline();
for(var xx:Number = 0; xx < bmpd.width; xx++)
{
for (var yy:Number = 0; yy < bmpd.height; yy++)
{
//ビットマップに文字が書き込まれている以外の場所は
//色が白なので点を配置するような処理を行わないために処理を飛ばす
//文字の位置に点を配置する
var col:Number = bmpd.getPixel32(xx, yy);
var sp:Sprite = generateSp(s, col);
addChildAt(sp,0);
timeline = Tweensy.to(sp, { x: xx * s, y: yy * s + 100, z: 0 }, 1, Sine.easeOut, i);
//速度調整
i+= 0.0010;
}
}
//マウスをクリックするともう一度、文字を表示しなおす
stage.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void {
stage.removeEventListener(MouseEvent.CLICK, arguments.callee);
allRemoveChild();
init();
});
}
private function allRemoveChild():void {
for (var i:Number = numChildren - 1; i >= 0; i--) {
var child:* = getChildAt(i);
var stats:Stats = child as Stats
if (stats != null) continue;
removeChild(child);
}
}
private function generateSp(s:Number, color:Number):Sprite {
var sp:Sprite = new Sprite();
sp.graphics.beginFill(color);
sp.graphics.drawRect(7, 7, s, s);
sp.graphics.endFill();
sp.x = (Math.random() * stage.stageWidth);
sp.y = (Math.random() * stage.stageHeight) + stage.stageHeight;
return sp;
}
}
}