forked from: forked from: へんなとけい
forked from forked from: へんなとけい (diff: 46)
ActionScript3 source code
/**
* Copyright undo ( http://wonderfl.net/user/undo )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/9tuQ
*/
// forked from uwi's forked from: へんなとけい
// forked from undo's へんなとけい
package
{
import flash.display.Sprite;
import flash.events.Event;
public class FlashTest extends Sprite
{
private var yer:Sprite = new Sprite();
private var mon:Sprite = new Sprite();
private var day:Sprite = new Sprite();
private var hor:Sprite = new Sprite();
private var min:Sprite = new Sprite();
private var sec:Sprite = new Sprite();
private var msec:Sprite = new Sprite();
private var yerLength:Number = 20;
private var monLength:Number = 40;
private var dayLength:Number = 60;
private var horLength:Number = 80;
private var minLength:Number = 100;
private var secLength:Number = 120;
private var msecLength:Number = 140;
public function FlashTest()
{
// write as3 code here..
// 短針の先に長針が付いてて、長針の先に秒針がついてる
// へんな時計
//ミリ針などなまぬるい
//年月日も追加じゃー
//graphics.lineStyle(3,0xcccccc);
//graphics.drawCircle(stage.stageWidth/2, stage.stageHeight/2, Math.min(stage.stageWidth, stage.stageHeight)/2-50);
addChild(yer);
addChild(mon);
addChild(day);
addChild(hor);
addChild(min);
addChild(sec);
addChild(msec);
yer.graphics.beginFill(0);
yer.graphics.drawRect(-10,10,20,-yerLength-20);
yer.graphics.endFill();
mon.graphics.beginFill(0x222222);
mon.graphics.drawRect(-9,9,18,-monLength-18);
mon.graphics.endFill();
day.graphics.beginFill(0x444444);
day.graphics.drawRect(-8,8,16,-dayLength-16);
day.graphics.endFill();
hor.graphics.beginFill(0x666666);
hor.graphics.drawRect(-7,7,14,-horLength-14);
hor.graphics.endFill();
min.graphics.beginFill(0x888888);
min.graphics.drawRect(-6,6,12,-minLength-12);
min.graphics.endFill();
sec.graphics.beginFill(0xaaaaaa);
sec.graphics.drawRect(-4,30,8,-secLength-30);
sec.graphics.endFill();
msec.graphics.beginFill(0xcccccc);
msec.graphics.drawRect(-4,30,8,-msecLength-30);
msec.graphics.endFill();
yer.x = stage.stageWidth/2;
yer.y = stage.stageHeight/2;
addEventListener(Event.ENTER_FRAME, onEnter);
}
private function onEnter(evt:Event):void
{
var date:Date = new Date();
var yr:Number = date.getFullYear();
var mn:Number = date.getMonth();
var d:Number = date.getDate();
var h:Number = date.getHours();
var m:Number = date.getMinutes();
var s:Number = date.getSeconds();
var ms:Number = date.getMilliseconds();
yer.rotation = 360*(yr%1000 -1 + mn/12)/1000;
mon.x = yer.x + Math.sin(Math.PI*yer.rotation/180)*yerLength;
mon.y = yer.y - Math.cos(Math.PI*yer.rotation/180)*yerLength;
mon.rotation = 360*(mn+d/30)/12;
day.x = mon.x + Math.sin(Math.PI*mon.rotation/180)*monLength;
day.y = mon.y - Math.cos(Math.PI*mon.rotation/180)*monLength;
day.rotation = 360*(d+h/24)/30;
hor.x = day.x + Math.sin(Math.PI*day.rotation/180)*dayLength;
hor.y = day.y - Math.cos(Math.PI*day.rotation/180)*dayLength;
hor.rotation = 360*(h+m/60)/12;
min.x = hor.x + Math.sin(Math.PI*hor.rotation/180)*horLength;
min.y = hor.y - Math.cos(Math.PI*hor.rotation/180)*horLength;
min.rotation = 360*(m+s/60)/60;
sec.x = min.x + Math.sin(Math.PI*min.rotation/180)*minLength;
sec.y = min.y - Math.cos(Math.PI*min.rotation/180)*minLength;
sec.rotation = 360*(s + date.getMilliseconds()/1000)/60;
msec.x = sec.x + Math.sin(Math.PI*sec.rotation/180)*secLength;
msec.y = sec.y - Math.cos(Math.PI*sec.rotation/180)*secLength;
msec.rotation = 360*(ms)/1000;
}
}
}
