每次使用AS3激活帧时,将变量增加1

时间:2013-09-29 15:53:10

标签: actionscript-3 flash flash-cs6

对于某些人来说,这是一个很容易回答的问题,呵呵:每次进入特定帧时,如何将变量值增加1?

我确实有这个代码运行一次,然后下次时间轴在框架上时它将不再运行:

// 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)运行的函数中执行此代码,但这只是不停地一次又一次地增加了值。

谢谢。

1 个答案:

答案 0 :(得分: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
        }
}
//