2013-09-29 51 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

相关问题