0

だから基本的にはボタンをクリックしてヘルスバーのヘルス量を減らすゲームを作っています。ステージ上にfortyfivedown_btnという名前のボタンと、101フレーム(ゼロを含む)のムービークリップであるヘルスバーがあります。ヘルスバーのインスタンス名はlifebarです。ステージでは、ボタンのコーディングは次のとおりです。

fortyfivedown_btn.addEventListener(MouseEvent.CLICK, fortyfivedownClick);
function fortyfivedownClick(event:MouseEvent):void{
    lifebar.health = lifebar.health-45;
    }

ヘルスバームービークリップの中には、次のようなコーディングのレイヤーがあります。

var health:int = 100;
gotoAndStop(health + 1);
if(health < 0) health = 0;
else if(health > 100) health = 100;
gotoAndStop(health + 1);

だから、私のコーディングがあります。つまり、ボタンがクリックされても、ヘルスバーは下がりません。ボタンのヘルス変数をトレースしました。

  fortyfivedown_btn.addEventListener(MouseEvent.CLICK, fortyfivedownClick);
  function fortyfivedownClick(event:MouseEvent):void{
        lifebar.health = lifebar.health-45;
        }
        {
                trace(lifebar.health);  
                }

出力が0であることがわかりました。何らかの理由で、ヘルスバームービークリップ内で100であると宣言したときに、ボタンはヘルスが0であると信じていますか?どんな助けでも大歓迎です。

(編集)

さて、トレースの質問に答えて、私がそのようにしないと、出力がありません。私はこれですべて初心者であり、私が進むにつれて学んでいると言わなければならないので、私に耐えてください。これが私のflaファイルです:

https://skydrive.live.com/embed?cid=9AB08B59DCCDF9C6&resid=9AB08B59DCCDF9C6%21107&authkey=AGqFHhlHnvOXvuc

4

1 に答える 1

0

さて、ライフバーのムービークリップに含まれていたコードを完全に削除します。今のところそのレイヤーを削除してから、メインシーンにあるコードをこれに置き換えると、必要な結果が得られます。

fortyfivedown_btn.addEventListener(MouseEvent.CLICK, fortyfivedownClick);

var health:int = 100;

lifebar.gotoAndStop(101);

function fortyfivedownClick(event:MouseEvent):void{
    health -= 45;

    if(health < 0) health = 0;
    else if(health > 100) health = 100;

    lifebar.gotoAndStop(health + 1);

    //Can write this also: lifebar.health += 45;
    trace(health);
}

これを行うには他の方法がありますが、現在の設定を考えると、これは必要なものを取得するための最小限の変更になります。もう1つのオプションは、スプライトの幅を設定することです。

タイムラインに多くのものを含めるのではなく、個人的にこれを行う方法について、変更したflaとコンパニオンをファイルとしてアップロードしました。

http://www.mediafire.com/?d38hbm32p71x1n8

于 2012-07-16T03:58:27.103 に答える