TeraClockのAS2版を使ってみよう

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版でする場合のスクリプトは以下のようになります。

ACTIONSCRIPT:
  1. import uranodai.utils.TeraClock;
  2.  
  3. var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
  4. var clock:TeraClock = new TeraClock(mc);
  5. clock.addEventListener(TeraClock.SECONDS_CHANGED,secondsListener);
  6. clock.addEventListener(TeraClock.MINUTES_CHANGED,minutesListener);
  7. clock.addEventListener(TeraClock.HOURS_CHANGED,hoursListener);
  8.  
  9. function secondsListener():Void {
  10. trace(clock.seconds+"秒です。現在:"+clock.hours+":"+clock.minutes+":"+clock.seconds+" です。");
  11. }
  12. function minutesListener():Void {
  13. trace(clock.minutes+"分になったよ。");
  14. }
  15. function hoursListener():Void {
  16. trace(clock.hours+"時になったよ。");
  17. }

上記のスクリプトを、Flashファイルのフレームにコピペしてください。
newする時以外はAS3版と全く同じ書き方で動くので、その他詳しい解説はTeraClock作者teraさんのブログの記事かWebDesigning12月号を参考にしましょう。

trick7.com - Flashで時計作る時に - 「TeraClock」ライブラリ作りました

AS3と同じでアナログ時計も作れるよ

AS2でもEventDispatcherというのを使えば、AS3と全く同じようにイベントリスナーが使えるんですね。本当に良く出来てます!その他AS3版に付いているアナログ時計の機能なども、まるコピーするだけで使えるようになります。
そのコピペしただけのものをこっそりコミットしておいたので、アナログ時計を作りたい方は使ってみてください。(こんなのコミットしてもいいのだろうか。。。)
使い方はAS3版と同じなので以下の記事か、WebDesigning12月号を参考に。

trick7.com - TeraClock でアナログ時計も簡単に作れます

COMMENTS [9]

  1. uranodai :

    解説ありがとうございます!m(_ _)m

    12 月 1st, 2008 at 11:21:46
  2. chabudai :

    >uranodaiさん
    とんでもないです!
    まさかAS3版と(ほぼ)同じ書き方で使えるとは思わず逆にはまってしまったのでw
    僭越ながらメモとしてエントリーにさせていただきました。
    TeraClockをAS2でも簡単に使えるようにしていただいて本当に感謝です!

    12 月 1st, 2008 at 23:15:05
  3. ofuku :

    Web Designing 12月号を見ましたよ〜!!
    気持ちよく動いていますねえ!
    うちの後輩にも好評でしたよ。

    12 月 1st, 2008 at 23:30:13
  4. tera :

    TeraClockのご使用どうもありがとうございますー。
    ホネホネ・クロックは見た瞬間に楽しめる・説明不要のオモローさがとても好きです~。
    今度貼らせていただきます~。(ぺろたん時計と入れ替えかなw)

    12 月 2nd, 2008 at 12:43:20
  5. chabudai :

    >ofukuさん
    気持ち悪いと良く言われるんですけど
    気持ち良いと言われてすごくうれしいです!

    >teraさん
    trick7からリンク貼っていただいて(涙)ありがとうございます。
    TeraClockはシンプルなクラスなので、クラスの書き方の勉強にもなりますね!
    いやー本当に素晴らしいライブラリです。

    12 月 2nd, 2008 at 23:50:56
  6. naya :

    ちゃぶ台様
    先日作ってくださっています「Teraclock」のAS2バージョンのサンプル
    をみつけ、大変ありがたく使わせていただいております。
    日本と時差があるときはAS2の場合、どこに書いたらよいのか、
    引数がどうしても渡せず困っております。
    恐縮ですが教えて頂けると大変助かります。

    突然の書き込みですみません。

    よろしくお願い致します。

    3 月 8th, 2009 at 12:52:57
  7. chabudai :

    >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
  8. naya :

    ちゃぶ台様
    早速のご返答ありがとうございましたっ!
    出来ましたっ(嬉)
    (mc,時間)、mcを入れていませんでした。。
    勉強不足でお恥ずかしい限りです・・・
    これからも参考にさせていただきながら頑張りますっ。

    ありがとうございました(涙)

    3 月 8th, 2009 at 20:17:17
  9. chabudai :

    >nayaさま
    うまく行って良かったです!
    私もまだまだ勉強不足でわからないことだらけなのですが
    お互いがんばりましょう。

    3 月 9th, 2009 at 3:44:21

トラックバック URL :