不気味な火の玉時計を作ってみたら、呪いのようなバグに悩まされた

  • このエントリーをはてなブックマークに追加
  • 0

今回もソース

ソースはそんなに長くないので、全掲載。

/*
* Copyright 2008 tarotarorg(http://tarotaro.org)
*
* Licensed under the Apache License, Version 2.0 (the “License”);
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an “AS IS” BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.tarotaro.flash.display
{
import com.trick7.effects.TeraFire;
import com.trick7.utils.TeraClock;
import flash.display.Sprite;
import flash.display.StageScaleMode;
import flash.events.Event;

/**
* …
* @author 太郎(tarotaro.org)
*/
[SWF(width=”120″, height=”600″, backgroundColor=”0xFFFFFF”, frameRate=”30″)]
public class BurningClock extends Sprite
{
private var _clock:TeraClock;
private var _fire:TeraFire;
private var _fx:Number;
private var _fy:Number;
private var _fw:Number;
private var _fh:Number;

public function BurningClock()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null):void
{
this.stage.scaleMode = StageScaleMode.NO_SCALE;
this._fx = this.stage.stageWidth / 2;
this._fy = this.stage.stageHeight * 0.95;
this._fw = this.stage.stageWidth / 24;
this._fh = this.stage.stageHeight / 45;
this._clock = new TeraClock(9);
this._clock.addEventListener(TeraClock.SECONDS_CHANGED, secondChanged);

this._fire = new TeraFire(this._fx,
this._fy,
(this._clock.hours + 1) * this._fw + 1,
(this._clock.minutes + 1) * this._fh + 5,
((0xFF-this._clock.hours) << 16) | (this._clock.minutes << 8) | this._clock.seconds * 4, (this._clock.seconds << 16) | (this._clock.minutes << 8) | this._clock.hours); this.addChild(this._fire); } private function secondChanged(e:Event):void { this._fire.changeFire( (this._clock.hours + 1) * this._fw + 1, (this._clock.minutes + 1) * this._fh - 5, ((0xFF-this._clock.hours) << 16) | (this._clock.minutes << 8) | this._clock.seconds * 4, (this._clock.seconds << 16) | (this._clock.minutes << 8) | this._clock.hours); } } }[/as]

似たネタ

trick7.com blog: 東京てら子 5 の連絡と、dotfes&WebDesigningでのお願い
経由で、TeraFireとTeraClockを使ってる類似ネタを発見。

TeraFireライブラリとTeraClockライブラリを使って、アナログ時計を作ってみました。
flabaka – TeraFireとTeraClockでアナログ時計

なるほど、こっちの方が実用性が高い。
でも気にしない。俺の方が先にネタを出してる。しかも色が違うし。
実用性なんてどうでもいいんだー!

スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク