不気味な火の玉時計を作ってみたら、呪いのようなバグに悩まされた
TeraFire+TeraClockシリーズ第2段と言う事で、時・分・秒の値をRGBとして使った、色と大きさの変わる炎で時計を表現すると言う妙な時計を作ってみた。demoはこちら。当初はもうちょっと違う物を作りたかったような気もするが、気付けば凄く不気味なものが出来てしまった。まぁいいか。
元々のTeraFireの仕様上、毎回色の違う炎を新規作成し、古い炎をStageから取り除き、新しい炎をStageに乗せるという方法をとってみたんだが、取り除いた炎がメモリから消えず、15?20秒で目に見えて動きが遅くなってしまった。
TeraFireのENTER_FRAMEイベントハンドラ関数loopをremoveEventListenerしてから取り除いてやった所、メモリ圧迫がなくなったんだが、何?イベントハンドラ関数があるSpriteをStageから削除してそのまま破棄するときは、イベントハンドラ関数を全部removeしないと駄目って事なの?
最終的には、以下の2点の変更をTeraFireに施し、コミットすると言う荒業に出てみたんだ。
- 炎とゆらぎ用の表示オブジェクトを作っている部分をpublicな外部関数化し、炎の幅・高さ・色を変更可能にした
ENTER_FRAMEイベントが他の表示オブジェクト上に乗ってる時以外は発生しないようにした
でもやっぱ思い直してbranchesにしといた。TeraFire本流の変更は全部元に戻しといた。
一応、火の玉時計はちゃんと時・分・秒が分かるようになってる。
- 炎の幅で今何時かが分かる
- 炎の高さで今何分かが分かる
- 炎の色で今何秒かが分かる
ただし、色は時分秒全部から出来てるので、1日中毎回違うと言う状況だが。
と言うか、これ見ても今何時何分何秒かなんて絶対分からんな。
何でも、今TeraClock作品を紹介してくれるキャンペーン的なものをやっているらしいが、到底出せない。
「TeraClock」ユーザの皆さん
14日のイベント「dotFes 2008 Tokyo」の展示スペースにiMac24inchで皆さんの時計作品を紹介させていただきたいのです。趣旨としましては「TeraClock でいろんな人がいろんな時計を表現してくれましたよー!」という感じになればありがたいのです。ネット上で作品公開してくださっている方で、紹介OKよという人は、このエントリのコメント欄やメール等で、紹介OKの旨を11日までにお知らせいただければ本当に助かります。
trick7.com blog: 東京てら子 5 の連絡と、dotfes&WebDesigningでのお願い







