【问题标题】:Increasing variable by 1 every time the frame is active with AS3每次使用 AS3 激活帧时,变量增加 1
【发布时间】:2013-10-05 11:27:54
【问题描述】:

对于某些人来说,这确实是一个容易回答的问题,呵呵:如何在每次进入特定帧时将变量值增加 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) 运行的函数中执行此代码,但这只会一遍又一遍地不断增加值。

谢谢。

【问题讨论】:

    标签: actionscript-3 flash flash-cs6


    【解决方案1】:

    出于某种奇怪的原因,我让它工作了。这段代码是在开头添加的,而不是像我上次那样在结尾添加。这是我所做的:

    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
            }
    }
    //
    

    【讨论】:

    • 显然您正在检查错误对象的 currentFrame 属性。您对昼夜显示感兴趣,而您正在检查stage。尝试将侦听器添加到具有较长时间线并且显示白天而不是舞台的 MC,应该这样做。 (脱掉心灵感应者的帽子)
    • 谢谢。我想出了一些有趣的事情;我忘记删除 ENTER_FRAME 事件,所以它“永远”运行,呵呵。 (我是 ActionScript 的新手)我将更新代码以显示我的好(意思)。 :)
    猜你喜欢
    • 2015-09-04
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-22
    • 2021-01-03
    相关资源
    最近更新 更多