/**
* Copyright undo ( http://wonderfl.net/user/undo )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/m9fb
*/
<?xml version = "1.0" encoding = "utf-8"?>
<mx:Application xmlns:mx = "http://www.adobe.com/2006/mxml" layout = "absolute" applicationComplete = "init();">
<mx:Script>
<![CDATA[
/*
* これパクった
* Scroll Clock
* http://toki-woki.net/p/scroll-clock/
*
* 小さいウィンドウだとつまんないので
* 右下のボタンでフルスクリーンにしてね。
*/
import flash.events.Event;
import mx.containers.Canvas;
import caurina.transitions.Tweener;
private var decWidth:Number;
private var decHeight:Number;
private var interval:Number = 25;//時分秒の隙間
private var barWidth:Number = 20;//バーの太さ大体
private var LED:Array = [
[1,1,1,1,1,1,0],
[1,1,0,0,0,0,0],
[1,0,1,1,0,1,1],
[1,1,1,0,0,1,1],
[1,1,0,0,1,0,1],
[0,1,1,0,1,1,1],
[0,1,1,1,1,1,1],
[1,1,0,0,1,1,0],
[1,1,1,1,1,1,1],
[1,1,1,0,1,1,1]
];
private var canvasArray:Array = new Array();
private var now:int = 0;
private function init():void
{
this.decWidth = (this.width - interval * 8) / 6;
this.decHeight = this.decWidth * 0.8;
//デジタル表示するスクロールバーをそれぞれaddChild
setCanvas(h1);
setCanvas(h2);
setCanvas(m1);
setCanvas(m2);
setCanvas(s1);
setCanvas(s2);
//座標
h2.x = this.decWidth+this.interval;
m1.x = this.decWidth*2 + this.interval*3;
m2.x = this.decWidth*3 + this.interval*4;
s1.x = this.decWidth*4 + this.interval*6;
s2.x = this.decWidth*5 + this.interval*7;
this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(evt:Event):void
{
var date:Date = new Date();
if(date.getSeconds() != this.now)
{
this.now = date.getSeconds();
changeTime(date);
}
else
{
//何もしない
}
}
private function changeTime(date:Date):void
{
//秒数が進んだら、時刻表時をトゥイーン
//表示する時刻を1字ずつの配列に
var h:int = date.getHours();
var m:int = date.getMinutes();
var s:int = date.getSeconds();
var newTime:Array = [Math.floor(h/10), h%10, Math.floor(m/10), m%10, Math.floor(s/10), s%10];
//各数字をトゥイーン i:数字の桁
for(var i:int = 0; i < 6; i++)
{
Tweener.addTween(this.canvasArray[i][0], {width:this.LED[newTime[i]][6] * this.decWidth*2, height:this.LED[newTime[i]][0] * this.decHeight*2, time:0.8, transition:"easeInOutCubic"});
Tweener.addTween(this.canvasArray[i][1], {width:this.LED[newTime[i]][2] * this.decWidth*2, height:this.LED[newTime[i]][1] * this.decHeight*2, time:0.8, transition:"easeInOutCubic"});
Tweener.addTween(this.canvasArray[i][2], {height:this.LED[newTime[i]][3] * this.decHeight*2, time:0.8, transition:"easeInOutCubic"});
Tweener.addTween(this.canvasArray[i][3], {height:this.LED[newTime[i]][4] * this.decHeight*2, time:0.8, transition:"easeInOutCubic"});
Tweener.addTween(this.canvasArray[i][4], {width:this.LED[newTime[i]][5] * this.decWidth*2, time:0.8, transition:"easeInOutCubic"});
}
}
private function setCanvas(trg:Canvas):void
{
//デジタル表示のスクロールバーを表示するためのCanvasを生成。
//頭
var h5:Canvas = new Canvas();
h5.width = this.decWidth;
h5.height = this.barWidth;
var h5child:Canvas = new Canvas();
h5child.width = this.decWidth*2;
h5child.height = 1;
h5.addChild(h5child);
h5.x = this.barWidth;
//右上と真ん中
var h06:Canvas = new Canvas();
h06.width = this.decWidth;
h06.height = this.decHeight;
var h06child:Canvas = new Canvas();
h06child.width = this.decWidth*2;
h06child.height = this.decHeight*2;
h06.addChild(h06child);
h06.x = this.barWidth;
h06.y = this.barWidth;
//右下と下
var h12:Canvas = new Canvas();
h12.width = this.decWidth;
h12.height = this.decHeight;
var h12child:Canvas = new Canvas();
h12child.width = this.decWidth*2;
h12child.height = this.decHeight*2;
h12.addChild(h12child);
h12.x = this.barWidth;
h12.y = this.barWidth + this.decHeight;
//左下
var h3:Canvas = new Canvas();
h3.width = this.barWidth;
h3.height = this.decHeight;
var h3child:Canvas = new Canvas();
h3child.width = 1;
h3child.height = this.decHeight*2;
h3.addChild(h3child);
h3.y = this.barWidth+this.decHeight;
//左上
var h4:Canvas = new Canvas();
h4.width = this.barWidth;
h4.height = this.decHeight;
var h4child:Canvas = new Canvas();
h4child.width = 1;
h4child.height = this.decHeight*2;
h4.addChild(h4child);
h4.y = this.barWidth;
//以上。
//addChild
trg.addChild(h5);
trg.addChild(h06);
trg.addChild(h12);
trg.addChild(h3);
trg.addChild(h4);
//配列保持
var arry:Array = [h06child, h12child, h3child, h4child, h5child];
this.canvasArray.push(arry);
} ]]>
</mx:Script>
<mx:Canvas id = "h1" />
<mx:Canvas id = "h2" />
<mx:Canvas id = "m1" />
<mx:Canvas id = "m2" />
<mx:Canvas id = "s1" />
<mx:Canvas id = "s2" />
</mx:Application>