1

そのため、sleep_btn という名前のボタンを含む bg というムービークリップがあります。ステージ上のレイヤーでコーディングを行っていますが、次のようになりました。

sleep_btn.addEventListener(MouseEvent.CLICK, sleepClick);
function sleepClick(event:MouseEvent):void{
    health = 100;
    day += 1;
}

コーディングでムービークリップも定義しないと機能しないことにすぐに気付いたので、次のことを試しました。

bg.sleep_btn.addEventListener(MouseEvent.CLICK, sleepClick);
function sleepClick(event:MouseEvent):void{
    health = 100;
    day = day + 1;
}

エラーはなくなりましたが、ボタンをクリックすると、健康状態と日が同じままであることがわかりました。

日はテキスト フィールドにあり、次のようにコーディングされています。

var day:int = 1;
if (day==1) date.text = "July 1";
if (day==2) date.text = "July 2";
if (day==3) date.text = "July 3";

そして何度も

そしてヘルスは、次のようなコーディングを含む 101 フレームのムービークリップです。

var health:int = 100;
   lifebar.gotoAndStop(health + 1);

編集

トップ バナー レイヤー:

stop();
var health:int = 100;
   lifebar.gotoAndStop(health + 1);
    //Can write this also: lifebar.health += 45;
    trace("health is "+health);
    trace("day is "+day);

var day:int = 1;
updateDay();

function updateDay():void{
if (day==1) date.text = "July 1";
if (day==2) date.text = "July 2";
if (day==3) date.text = "July 3";
if (day==4) date.text = "July 3";
}

fortyfivedown_btn.addEventListener(MouseEvent.CLICK, fortyfivedownClick);
function fortyfivedownClick(event:MouseEvent):void{
    if (health < 45) {
       return;
    }
    health -= 45;
    if(health < 0) health = 0;
    else if(health > 100) health = 100;
    lifebar.gotoAndStop(health + 1);
     trace("health is "+health);
}

bg.sleep_btn.addEventListener(MouseEvent.CLICK, sleepClick);
function sleepClick(event:MouseEvent):void{
    health = 100;
    day = day + 1;

    //update lifebar
    lifebar.gotoAndStop(health + 1);

    //update day
    updateDay();
}
4

2 に答える 2

0

実際の UI テキストボックスを新しいデータで更新していません。再利用できるように、1 日を決定するコード (大規模にクリーンアップされる可能性がありますが、この質問の範囲外です) を独自の関数に移動します。

var day:int = 1;
updateDay();

function updateDay():void{
    if (day==1) date.text = "July 1";
    if (day==2) date.text = "July 2";
    if (day==3) date.text = "July 3";
    // ...and so on...
}

sleepClick次に、ハンドラーでその関数 (およびヘルスの更新) を呼び出します。

function sleepClick(event:MouseEvent):void{
    health = 100;
    day = day + 1;

    //update lifebar
    lifebar.gotoAndStop(health + 1);

    //update day
    updateDay();
}
于 2012-07-16T21:19:19.197 に答える
0

ステージ上に表示されますhealthか?day彼らはどのタイプですか?TextField のテキストをその値に設定していますか?

それらが単なる変数であり、UI によって表示されない場合、それらが変更されることはありません。

于 2012-07-16T20:41:00.370 に答える