ホーム > Flash > AS3.0 > as3.0:デジタル時計を作ってみました

  • Deliciousにブックマーク
  • このエントリをはてなブックマークに登録
  • Yahoo!ブックマークに登録
  • このエントリをlivedoorクリップに登録
  • このエントリをBuzzurlにブックマーク

as3.0:デジタル時計を作ってみました

  • AS3.0, Flash
  • 2008.9.3 AM.12:00 | 
  • Posted by: mooco |

trick7.com blogさんのエントリ Flashで時計作る時に – 「TeraClock」ライブラリ作りました を拝見。
FLash as3.0で簡単に時計が作れるという記事
おーこれはすごい便利!!と思いこのライブラリを早速使わせてもらいました。
記事通り同フォルダに「src」フォルダを作成TortoiseSVNで「TeraClock.as」をダウンロード。ひとまず記事のサンプル通りに作成

[ Sample ]

[ Source : ClockSample1.as ]
package
{
	import flash.display.Sprite;
	import com.trick7.utils.TeraClock;
	import flash.events.Event;
	import flash.text.TextField;

	/**
	* 2008.09
	*/
	public class ClockSample1 extends Sprite
	{
		private var clock:TeraClock = new TeraClock();
		private var text:TextField;
		private var _messege:String;

		public function ClockSample1()
		{
				clock = new TeraClock();
				clock.addEventListener(TeraClock.SECONDS_CHANGED, secondsListener);

				//text
				text = new TextField;
				stage.addChild(text)
				text.x = stage.width/2;
				text.y = stage.height/2-10;
				text.width = 200;
				text.height = 20;
				text.selectable = false;
				text.textColor = 0xffffff;
			}
			private function secondsListener(event:Event):void {
				_messege = String("現在:" +clock.hours + ":" + clock.minutes + ":" + clock.seconds + " です。");
				text.text = _messege;
			}
		}
}

trick7.com blog さんの記事をみてみると

時・分・秒の各値は、(TeraClockインスタンス名).seconds とかで取得できます。秒の値に応じてオブジェクトのサイズ変形とかするときはこっちですね。
一方、デジタル数字で表示させたい時は、たとえば5秒のときは「05」にしたいですよね。そういうときは2桁モードとして、(TeraClockインスタンス名).seconds2ってやると常に2桁になるようにしてあります。

と書いてありました。
ということは「clock.hours」「clock.minutes」「clock.seconds」に「2」をつけるだけで
わざわざ「0」を足す処理をしなくてもOKということですね。
これもうれしいかぎり。
あとは表現。ということで
早速AS2.0で以前に作成したデジタル時計をAS3.0に直してみました

[ Sample ]

[ Source : ClockMain.as ]
package
{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import com.trick7.utils.TeraClock;
	import flash.events.Event;
	import flash.text.TextField;

	/**
	* 2008.09
	* @author Molab.
	* AS3.0 Clock
	*/
	public class ClockMain extends MovieClip
	{
		private var clock:TeraClock = new TeraClock();
		private var text:TextField;
		private var _messege:String;
		private var centerX:Number = stage.stageWidth / 2;
		private var centerY:Number = stage.stageHeight / 2;
		private var _mc:MovieClip;

		public function ClockMain()
		{
			//MC
			var _mc:ClockSample2 = new ClockSample2(mc);
			mc.x = centerX+mc.x/2;
			mc.y = centerY+mc.y/2;

			//Time
			clock = new TeraClock();
			clock.addEventListener(TeraClock.SECONDS_CHANGED, clockListener);

			//TextField
			text = new TextField;
			stage.addChild(text);
			text.x = 10;
			text.y = 10;
			text.width = 200;
			text.height = 20;
			text.selectable = false;
			text.textColor = 0xffffff;
		}

		//Clock
		private function clockListener(event:Event):void {
			_messege = String(clock.hours2 + ":" + clock.minutes2 + ":" + clock.seconds2);
			text.text = _messege;

			var time:String = String(clock.hours2 + clock.minutes2 + clock.seconds2);
			var count:Number;
			var i:Number;
			for (i = 1; i <= 6; i++) {
				count = Number(time.substr(i-1, 1));
				if(count==0) mc["time"+i].gotoAndStop(count);
				else mc["time" + i].gotoAndStop(count + 1);
			}
		}
	}
}

こんな感じになりました。
このASファイルワールドタイムも取得できるのでかなりステキですね。
AS3.0で初の作成物になりました(´∀`*)
別クラスを作ったんだけどいらなかったかな~
ひとまずサンプルなのでよしとします。今度差し替えます。
なれるとAS3.0のほうがエラーを教えてくれるし文系人間の私でも書き方もスマートかも。。
せっかくだから今度はこの時計をAIRにパッケージしてみようと思う。

Article tags: ,

0

Comment Form

Related Posts

AS3.0:Bitmap描画サンプル
08.09.09 AS3.0:Bitmap描画サンプル

Bitmap/BitmapDataを使ったスプレーペイント描画サンプルカラーはランダムで変更…

as3.0:線形上下運動
08.08.30 as3.0:線形上下運動

前記事as3.0:上下運動に動きを追加。[ サンプル ]…

as3.0:上下運動
08.08.23 as3.0:上下運動

AS3引き続き勉強中。[ サンプル ]…

AS3.0:XMLの読み込み
08.11.20 AS3.0:XMLの読み込み

as3.0でXML読み込みしてみました。as2.0に比べると格段に便利~。ステキです。as2.0のXMLオブジェクトは「XMLNode」として別扱いであるそう。…

as3.0:表示リスト/親子関係
08.08.19 as3.0:表示リスト/親子関係

AS3最近ちょっと勉強中。AS2と比べると大きく違うことはまず書き方だと思うけど、型定義を宣言してStageにaddChildしないと表示されないことかな。
でも型定義・宣言してるからどこか記述ミスし…

About

mooco
[mooco]

東京を中心にWebデザイナーとして活動しています。

趣味は愛猫と遊ぶこと。 web周りのあれこれで遊ぶことです。

Search

Categories