// forked from Rnkn's flash on 2009-7-19
package {
import flash.display.Sprite;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.text.TextField;
import flash.text.TextFormat;
public class FlashTest extends Sprite {
public var base:Sprite;
public var second:Array = new Array();
public var secX:Array = new Array();
public var secY:Array = new Array();
public var secZ:Array = new Array();
public var timer:Timer;
public const screenZ:Number = 400;
public const centerZ:Number = 950;
public const hankei:Number = 500;
public function FlashTest():void {
base = new Sprite();
base.x = this.stage.stageWidth/4;
base.y = this.stage.stageHeight/2;
addChild(base);
for(var i:int = 0;i<60;i++){
second.push(new TextField);
var num:int = second.length-1;
var format:TextFormat = new TextFormat("_ゴシック",25);
base.addChild(second[num]);
second[num].defaultTextFormat = format;
if (i < 10) {
second[num].text = "0" + i;
}else{
second[num].text = "" + i;
}
secX.push(200);
secY.push(0);
secZ.push(0);
}
timer = new Timer(33);
timer.addEventListener(TimerEvent.TIMER, loop);
timer.start();
}
public function loop(event:TimerEvent):void{
//Dateと秒数の取得
var date:Date = new Date();
var sec:Number = date.getSeconds();
for (var i:int = 0;i<60;i++){
var angle:Number = (-sec/60*Math.PI*2 + i/60*Math.PI*2);
var theY:Number = hankei * Math.sin(angle);
var theZ:Number = centerZ - hankei * Math.cos(angle);
//徐々に目的の数値へ近づける。
secY[i] += (theY - secY[i])/4;
secZ[i] += (theZ - secZ[i])/4;
//二次元の座標への変換。
second[i].x = secX[i] * screenZ / secZ[i];
second[i].y = secY[i] * screenZ / secZ[i];
second[i].scaleX = second[i].scaleY = second[i].x * 0.01
}
}
}
}