In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

flash on 2011-6-3

import flash.filters.ColorMatrixFilter;
import flash.geom.Point;
Get Adobe Flash player
by yasyasyas 02 Jun 2011
    Embed
/**
 * Copyright yasyasyas ( http://wonderfl.net/user/yasyasyas )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/zgF2
 */

package {
	import flash.display.*;
	import flash.events.Event;
	//import flash.filters.ColorMatrixFilter;
	//import flash.geom.Point;
	import flash.text.*;
	
	public class Main3 extends Sprite {
		
		private var sp1:Sprite;
		private var sp2:Sprite;
		private var sp3:Sprite;
		private var cx:Number = 200; //時計の中心点のx座標
		private var cy:Number = 200; //時計の中心点のy座標
		private var numList:Array = ["I", "II","III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"];
		
		public function Main3() {
			//trace("hoge");
			
			for (var i:int = 0; i < numList.length; i++) {
				var nanji:TextField = new TextField();
				var tFormat:TextFormat = nanji.getTextFormat();
				tFormat.size = 25;
				//tFormat.bold = true;
				nanji.defaultTextFormat = tFormat;
				nanji.autoSize = "left";
				nanji.text = numList[i];
				
				var sp:Sprite = new Sprite();
				sp.graphics.drawRect(0, 0, nanji.width, 130);  //枠線なし&文字盤の文字幅&分針と同じくらいの長さの四角形を作り・・・
				sp.addChild(nanji);  //その先に文字盤の文字を載せるイメージ。この繰り返し文で、文字ごとのspを30度ずつ回転させて文字盤を作っていく。
				//addChild(sp);
				
				
				/*
				以下は、テキストをそのまま回転させると消えてしまうのを防ぐ処理。
				要は、上記のspをビットマップ化して、それをさらに別のSpriteオブジェクトの子にし、
				そのSpriteオブジェクトを回転させる。以下のサイトを参考にさせていただきました。
				http://www.ncreate.net/flash/post201/
				*/
				
				var bmd:BitmapData = new BitmapData(sp.width, sp.height, true, 0x00);
				bmd.draw(sp);
				var bm:Bitmap = new Bitmap(bmd, "auto", true);
				
				//bmをSpriteオブジェクトの子に入れる前に、あとできれいに回転するようにbmの位置をずらしておく。
				bm.x = -bm.width / 2;
				bm.y = -bm.height;
				
				var rotationBase:Sprite = new Sprite();
				rotationBase.addChild(bm);
				addChild(rotationBase);
				
				//回転の基準点を時計の中心に持っていく。
				rotationBase.x = cx;
				rotationBase.y = cy;
				
				//
				rotationBase.rotation = 30 + 30 * i;  // 30度傾けたところから"I"が始まり、以降30度ずつズラしていく。
				
			}
			
			
			
			var tf:TextField = new TextField();
			tf.text = "SOIKO";
			tf.autoSize = "center";
			tf.x = 200 - tf.width * 0.5;
			//tf.border = true;
			tf.y = 220;
			addChild(tf);
			
			//秒針
			sp1 = new Sprite();
			sp1.graphics.beginFill(0xff0000);
			//sp1.graphics.drawCircle(50, 0, 20);
			sp1.graphics.drawRect(-30, -1, 130, 2);
			sp1.graphics.endFill();
			sp1.x = 200;
			sp1.y = 200;
			//addChild(sp1);
			
			
			//分針
			sp2 = new Sprite();
			sp2.graphics.beginFill(0x00FF00);
			//sp2.graphics.drawCircle(50, 0, 20);
			sp2.graphics.drawRect(0, -5, 100, 10);
			sp2.graphics.endFill();
			sp2.x = 200;
			sp2.y = 200;
			//addChild(sp2);
			
			//時針
			sp3 = new Sprite();
			sp3.graphics.beginFill(0x0000FF);
			//sp3.graphics.drawCircle(50, 0, 20);
			sp3.graphics.drawRect(0, -8, 80, 16);
			sp3.graphics.endFill();
			sp3.x = 200;
			sp3.y = 200;

			addChild(sp3);
			addChild(sp2);
			addChild(sp1);
			
			//中心点
			var cyu:Sprite = new Sprite();
			cyu.graphics.beginFill(0x000000);
			cyu.graphics.drawCircle(0, 0, 10);
			cyu.graphics.endFill();
			cyu.x = cx;
			cyu.y = cy;
			addChild(cyu);
			
			this.addEventListener(Event.ENTER_FRAME, onEnter);
			
		}
		
		private function onEnter(event:Event):void {
			//trace("Boo");
			var date:Date = new Date();
			//trace(date.hours, date.minutes, date.seconds);
			
			sp1.rotation = -90 + date.seconds * 6;
			sp2.rotation = -90 + date.minutes * 6;
			sp3.rotation = -90 + date.hours * 30 + date.minutes*0.5;
			
		}

		
	}
}