簡體   English   中英

動作3:movieclip中的按鈕

[英]Actionscript-3: Button within movieclip

因此,我有一個名為bg的動畫片段,其中有一個名為sleep_btn的按鈕。 我正在舞台上的一層上進行編碼,結果如下:

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();
}

舞台上是否顯示了healthday 他們是什么類型的? 您是否將TextField的文本設置為其值?

如果它們只是變量而沒有在UI中顯示,則不會看到它們發生變化。

您不會使用新數據更新實際的UI文本框。 將您每天確定的代碼(可以進行大量清理,但這不在此問題的范圍內)移至其自己的函數中,以便可以重復使用:

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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM