TeraClockのAS2版を使ってみよう
- 2008-11-30
- flash
Web Designing 12月号、連載「ActionScriptライブラリ」のTeraClock編で、TeraClock使用例として、他のTeraClockerさん達の作品とともに、ホネホネ・クロックを紹介していただきました。とてもとても嬉しいです。
Webサイトにも載っけていただいてる様子・・・。teraさん、Web Designingさん、ありがとうございます!
さて、そんな素敵ライブラリのTeraClockですが、uranodai さんという方が移植してくださっていて、AS2でも使えます。ただAS2版の使い方が解説されてなく、使ってみたときにちょっととまどったのでメモしておきます。
TeraClock AS2版のダウンロードは以下から。
http://www.libspark.org/svn/as2/TeraClock/
使い方
と言っても使い方はAS3版とほとんど同じです。
違うのは1箇所だけ!TeraClockインスタンスを作成する際に引数としてMovieClipを渡すことです。一番シンプルな書き方は以下のような感じでしょうか。
var clock:TeraClock = new TeraClock(this);
ただTeraClockAS2版は、渡したMovieClipに対してonEnterFrameを使うので、その後this.onEnterFrameを使ってしまうとTeraClockが動かなくなります。なのでthisを渡すよりは、TeraClock専用のMovieClipを作ってそれを渡す方が無難でしょう。
TeraClock AS3版に付いているサンプルコードと同じようなことをAS2版でする場合のスクリプトは以下のようになります。
-
import uranodai.utils.TeraClock;
-
-
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
-
var clock:TeraClock = new TeraClock(mc);
-
clock.addEventListener(TeraClock.SECONDS_CHANGED,secondsListener);
-
clock.addEventListener(TeraClock.MINUTES_CHANGED,minutesListener);
-
clock.addEventListener(TeraClock.HOURS_CHANGED,hoursListener);
-
-
function secondsListener():Void {
-
trace(clock.seconds+"秒です。現在:"+clock.hours+":"+clock.minutes+":"+clock.seconds+" です。");
-
}
-
function minutesListener():Void {
-
trace(clock.minutes+"分になったよ。");
-
}
-
function hoursListener():Void {
-
trace(clock.hours+"時になったよ。");
-
}
上記のスクリプトを、Flashファイルのフレームにコピペしてください。
newする時以外はAS3版と全く同じ書き方で動くので、その他詳しい解説はTeraClock作者teraさんのブログの記事かWebDesigning12月号を参考にしましょう。
trick7.com - Flashで時計作る時に - 「TeraClock」ライブラリ作りました
AS3版と同じでアナログ時計も作れるよ
AS2でもEventDispatcherというのを使えば、AS3と全く同じようにイベントリスナーが使えるんですね。本当に良く出来てます!その他AS3版に付いているアナログ時計の機能なども、まるコピーするだけで使えるようになります。
そのコピペしただけのものをこっそりコミットしておいたので、アナログ時計を作りたい方は使ってみてください。(こんなのコミットしてもいいのだろうか。。。)
使い方はAS3版と同じなので以下の記事か、WebDesigning12月号を参考に。
解説ありがとうございます!m(_ _)m
12 月 1st, 2008 at 11:21:46>uranodaiさん
12 月 1st, 2008 at 23:15:05とんでもないです!
まさかAS3版と(ほぼ)同じ書き方で使えるとは思わず逆にはまってしまったのでw
僭越ながらメモとしてエントリーにさせていただきました。
TeraClockをAS2でも簡単に使えるようにしていただいて本当に感謝です!
Web Designing 12月号を見ましたよ〜!!
12 月 1st, 2008 at 23:30:13気持ちよく動いていますねえ!
うちの後輩にも好評でしたよ。
TeraClockのご使用どうもありがとうございますー。
12 月 2nd, 2008 at 12:43:20ホネホネ・クロックは見た瞬間に楽しめる・説明不要のオモローさがとても好きです~。
今度貼らせていただきます~。(ぺろたん時計と入れ替えかなw)
>ofukuさん
気持ち悪いと良く言われるんですけど
気持ち良いと言われてすごくうれしいです!
>teraさん
12 月 2nd, 2008 at 23:50:56trick7からリンク貼っていただいて(涙)ありがとうございます。
TeraClockはシンプルなクラスなので、クラスの書き方の勉強にもなりますね!
いやー本当に素晴らしいライブラリです。
ちゃぶ台様
先日作ってくださっています「Teraclock」のAS2バージョンのサンプル
をみつけ、大変ありがたく使わせていただいております。
日本と時差があるときはAS2の場合、どこに書いたらよいのか、
引数がどうしても渡せず困っております。
恐縮ですが教えて頂けると大変助かります。
突然の書き込みですみません。
よろしくお願い致します。
3 月 8th, 2009 at 12:52:57>nayaさま
こんにちは。ちゃぶ台です。
ご質問の時差の件ですがこの記事のサンプルで言うと、
var clock:TeraClock = new TeraClock(mc);
としてるところを例えばニューヨークなら
var clock:TeraClock = new TeraClock(mc, -5);
北京なら
var clock:TeraClock = new TeraClock(mc, 8);
というように、引数として渡すMCの後にタイムゾーンを
3 月 8th, 2009 at 19:54:29指定するといけると思います。
ちゃぶ台様
早速のご返答ありがとうございましたっ!
出来ましたっ(嬉)
(mc,時間)、mcを入れていませんでした。。
勉強不足でお恥ずかしい限りです・・・
これからも参考にさせていただきながら頑張りますっ。
ありがとうございました(涙)
3 月 8th, 2009 at 20:17:17>nayaさま
3 月 9th, 2009 at 3:44:21うまく行って良かったです!
私もまだまだ勉強不足でわからないことだらけなのですが
お互いがんばりましょう。