『 Eseclockを改造しました 』
2009 年 4 月 7 日先日開催されたSpark project 勉強会 #08で、BeInteractive!のyossyさんが自身の発表時にライブコーディングされていたEseclockライブラリを拡張したのでご紹介します。
http://www.libspark.org/wiki/Eseclock/
Eseclockライブラリとは、UNIQLOCKっぽい何かが作れるライブラリです。UNIQLOCKでいうダンス的な部分をユーザーが自由に変更しながら、UNIQLOCKっぽいビジュアルを簡単に作れちゃいます。
オリジナルの使い方
- Eseclockクラスを継承したクラス(ここではMyEseclockクラスとする)を作ります。
- MyEseclockクラスでは、EseclockクラスのcreateContentメソッドをオーバーライドしておきます。ここで、createContentメソッドには時計の合間に表示するコンテンツを返り値とします。このcreateContentメソッドはコンテンツが表示される直前(秒の一の位が6のとき)に毎回呼び出されます。
- addChild(MyEseclock(0xff9933, 0xffffff));
引数で時計と背景色の色を指定します。 - ( ゚Д゚)ウマー
今回僕が改造したオリジナルからの変更点はこちら
- 描画更新されるときの、色やコンテンツが切り替わるときのアニメーションを追加しました。
- 時計の下表示する文字列を追加および編集可能にしました。
- リサイズに対応し、自動でステージにフィットさせるようにしました。また、固定サイズでの表示にも対応しました。
- 色を途中で変更できるようにしました。
- addChildと同時にスタートさせないオプションを追加しました。それに伴い、任意のタイミングでスタートさせるためのメソッド(startメソッド)を追加しました。
- コンテンツが表示される直前に呼び出されるメソッドの名前を変更しました。(createContent→_createContent)
- コンテンツが表示されている間にEseclockがリサイズされた場合に呼び出されるメソッド(_resizeContentメソッド)を追加しました。
- コンテンツが非表示にされる直前に呼び出されるメソッド(_removeContentメソッド)を追加しました。
- 毎秒必ず呼び出されるメソッド(_tickメソッド)を追加しました。
- _createContent、_resizeContent、_removeContent、_tickを自由に定義するためには各メソッドをサブクラスでオーバーライドする必要がありますが、継承を用いない場合でもcreateContent、resizeContent、removeContent、tick変数に関数を代入することで同様の結果を得られるようにしました。
- IEseclockTextFieldを実装したクラスなら何でも、時計表示および文字列表示部分に使えるようにしました。これにより、好きなフォントを埋め込んだテキストフィールドやライブラリに登録したシンボルを時計や文字列部分に使えるようになりました。
改造版のソースコード(使うときはhttp://www.libspark.org/browser/as3/Eseclock/branches/alumican/src以下全部をごそっと持って行ってください)
こうして見ると結構拡張していますが、使い方は極力簡単にしました。trick7のteraさんの言葉をお借りすると、ライブラリは必殺技ですから。「メラ」のたった二文字で火が出たら格好いいじゃあないですか。
まぁそもそもalumican.netは長い詠唱が必要なほど強大な魔法を唱えるにはMPが足りていないので、メラヒャドギラバギで行かせていただきます。でも、その気になればオプション的に自由に拡張していける仕様にはしているつもりなので、次回よりその辺もふまえて段階的に説明していきます。
最後に、一番簡単な使い方

これだけです。0行でおわり
>>Sample
まさかの次回へ続く(o’c_,`人)・:*:・
追記 09.04.08
Shunsuke Ohbaさんが改造版Eseclockを使ってAir版Eseclockを作られました。Eseclockにドロップしたテキストファイルや画像ファイルがランダムに表示されます。
