Actionscript, Web, Interactive and Design

TimeBar改修

admin : 2008. 12. 10. 23:41 — ActionScript

AS3.0にも、ようやく慣れてきました。

クラスベースでなにかコンテンツ作りたいなーと思ったので、以前作ったブログパーツ、TimeBarを作りなおしてみました。

今回は、TweenerTeraClockの2つのライブラリを使用しています。

さて、クラス化+ライブラリ使用ということで、前回のコードとはかなり毛色の違うものになっています。

注意して作ったのは以下の部分

  • 継承しているクラスの宣言
  • コンストラクタってなに?
  • バーの描画
  • Tweenerの利用

「全部じゃん」と突っ込みが入りそうですが、今回は初めてのクラスベースだったので、いろいろと気を使いました。

今回のコードはこの後。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package
{
	import flash.events.Event;
	import flash.display.*;
	import trick7.utils.TeraClock;
	import caurina.transitions.Tweener;
	import caurina.transitions.properties.ColorShortcuts;
	public class timebar extends Sprite
	{
		public var clock:TeraClock;
		public var container:Sprite = new Sprite();
		public var time0:Sprite=new Sprite();
		public var time1:Sprite=new Sprite();
		public var time2:Sprite=new Sprite();
		public var time3:Sprite=new Sprite();
		public var time4:Sprite=new Sprite();
		public var time5:Sprite=new Sprite();
		public function timebar ()
		{
			clock = new TeraClock();
			clock.addEventListener (TeraClock.SECONDS_CHANGED, secondsListener);
			for (var i:int = 0; i < 6; i++) {
				switch (i) {
					case 0 :
					case 1 :
						this["time" + i].graphics.beginFill (0xFF0000);
						break;
					case 2 :
					case 3 :
						this["time" + i].graphics.beginFill (0x00FF00);
						break;
					case 4 :
					case 5 :
						this["time" + i].graphics.beginFill (0x0000FF);
						break;
				}
			this["time" + i].graphics.drawRect (0,0,1,20);
			this["time" + i].graphics.endFill ();
			this["time" + i].x = 12;
			addChild (this["time" + i]);
			}
			time0.y=115.5;
			time1.y=136.5;
			time2.y=168.5;
			time3.y=189.7;
			time4.y=221.5;
			time5.y=242.5;
		}
		private function secondsListener (e:Event)
		{
			var h1:int = Math.floor (clock.hours / 10);//一桁目の取得
			var h2:int = clock.hours % 10;//二桁目の取得
			var m1:int = Math.floor (clock.minutes / 10);//一桁目の取得
			var m2:int = clock.minutes % 10;//二桁目の取得
			var s1:int = Math.floor (clock.seconds / 10);//一桁目の取得
			var s2:int = clock.seconds % 10;//二桁目の取得
			Tweener.addTween (time0, {width:h1*20,time:1,transition:"liner"});
			Tweener.addTween (time1, {width:h2*20,time:1,transition:"liner"});
			Tweener.addTween (time2, {width:m1*20,time:1,transition:"liner"});
			Tweener.addTween (time3, {width:m2*20,time:1,transition:"liner"});
			Tweener.addTween (time4, {width:s1*20,time:1,transition:"liner"});
			Tweener.addTween (time5, {width:s2*20,time:1,transition:"liner"});
		}
	}
}

0 Comments »

コメントはまだありません。

このコメント欄の RSS フィード TrackBack URI

コメントをどうぞ

Comments links could be nofollow free.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2010 blog.alterna.in | powered by WordPress with Barecity