0

I am trying to create a "meter bar" in Flash. I am creating an interactive house in Flash. Inside the house are objects that consume power. (ie. light bulb, computer, stove, etc...) Those objects are toggle buttons (created using MovieClips). (The objects can be toggled ON/OFF.) When ON--there is a "power value" associated with each house object (light bulb would be 1, computer would be 2, the tv would be 3...)

I am trying to create a "meter bar" (that looks like a preloader bar) that visually shows how much power in the house is being used. Having a full meter bar--would be having all the house objects turned on.

Not sure where to start. Any ideas as far as direction or any tutorials/examples you might find helpful would be appreciated.

4

1 に答える 1

1

アイテムがクリックされるたびにディスパッチされるカスタム イベントを作成できます。イベントには、電力レベルとステータス プロパティの 2 つのプロパティがあります。

このイベントを受け取ると、メーター バーの値を更新できます。ステータス値が "Off" の場合は、メーター バーの値を power の値だけ減らします。"On" の場合は、power の値だけ増やします。

上で説明したように、クリックごとに更新されるステータス プロパティを持つ ToggleClickButton という 2 つのクラスを作成します - CustomEvent 。

もちろん、不足している要素を追加する必要があります ( meterLevel 、 meterBar など...)

すべてが同じクラス内で発生する場合、CustomEvent は回避できます。そのような場合、クリックされたボタンのステータスを把握し、これを powerData 値を持つ関数に渡すだけで済みます。

function toggleClick(イベント:MouseEvent):void
{
   var button:ToggleClickButton = event.currentTarget as ToggleClickButton;
   dispatchEvent( new CustomEvent( powerData , button.status) );
}

関数 customEventListener(event:CustomEvent ):void
{
   場合 (イベント。ステータス == 0)
  {
      meterLevel -= event.powerData;
  }そうしないと {

     meterLevel += event.powerData;
   }

   updateMeterDisplay();
}

関数 updateMeterDisplay()
{
   //たとえば、maxPower と meterBar maxHeight がある場合
   meterBar.height = meterLevel * (最大高さ/最大電力);
}

于 2010-08-22T04:19:21.090 に答える