2013-09-29 90 views
0

對於某些人來說,這是一個很容易回答的問題,嘿嘿:每次進入該特定幀時,我怎樣才能將變量值增加1?每當AS3處於活動狀態時將變量加1 1

我curently有這樣的代碼運行一次,然後就不會再下一次的時間表是在框架上運行:

// This is at the end of the animation 

var DAY = 0; 

DAY++; 
dayTextField.text = DAY; 

gotoAndStop(7); // Go to the beginning and re-loop the animation 

我試圖做到這一點的代碼在一個函數,從運行stage.addEventListener(Event.ENTER_FRAME, function),但這只是一次又一次地增加了價值。

謝謝。

回答

0

由於一些奇怪的原因,我得到它的工作。這個代碼是在開始時添加的,而不是像上次那樣結束。下面是我所做的:

var DAY = 0; 

stage.addEventListener(Event.ENTER_FRAME, newDayFunc); 

function newDayFunc(event:Event) { 
    if (currentFrame == 1286) { 
     if (Moon.hitTestObject(wallNewDay)) { 
      DAY++; 
      dayTextField.text = DAY; 
      trace("What day it is:", DAY); 
     } 
    } 
} 

**這裏是我最終使用搞清楚東西出來後,嘿嘿:

// I figured it out. This is on the last frame. 

// Variables 
var DAY = 0; 
// 
// Listeners 
stage.addEventListener(Event.ENTER_FRAME, newDayFunc); 
// 
// Functions 
function newDayFunc(event:Event) { 
     if (DAY < 7)) { 
      DAY++; 
      dayTextField.text = DAY; 
      trace("What day it is:", DAY); 
      stage.removeEventListener(Event.ENTER_FRAME, newDayFunc); 
     } else { 
      // Added other eventListeners that needed to be removed 
      gotoAndStop("finished"); // The name of the finish frame 
     } 
} 
// 
+0

顯然要檢查錯了對象的'currentFrame'財產。你對日夜顯示感興趣,而你正在檢查'stage'。嘗試將監聽器添加到具有長時間線的MC,並且正在顯示白天而不是舞臺,應該這樣做。 (關閉傳感器帽子) – Vesper

+0

謝謝。我想出了一些有趣的東西;我忘了刪除ENTER_FRAME事件,所以它「永遠」運行,嘿嘿。 (我是ActionScript新手)我將更新代碼以顯示我很好(意思)。 :) – ravo10

相關問題