为什么我的AS3代码不起作用?为什么变量不会不断增加,而是等于1?

时间:2013-09-03 13:16:26

标签: actionscript-3 flashdevelop

起初?我是动作脚本3和Flashdevelop的新手。 为什么值var a不会不断增加,而只是等于1?哪里有错误?

package
{

    import flash.display.MovieClip;

    public class Main extends MovieClip 
    {

        public function Main() {
           var a: int;
            a = a + 1;
            trace(a);
        }
    }
}

4 个答案:

答案 0 :(得分:3)

Main函数是Main Class的构造函数,因此只调用一次。变量'a'因此仅增加一次。您需要添加某种循环以使'a'更频繁地增加。

答案 1 :(得分:3)

您的变量是函数的本地变量,因此每次调用该函数时,都会创建一个具有默认值的新变量(对于int类型为0),然后递增,然后跟踪,从而导致您看到1另外,如果您计划存储变量交叉运行,请使用SharedObject存储,因为如果重新启动已编译的SWF,即使全局或静态类范围的变量也不会保留其值。

答案 2 :(得分:0)

以上所有答案都是正确的。这是一种可行的方式,类似于你正在做的事情。

package
{
    import flash.display.MovieClip;

    public var a:int = 0;

    public class Main extends MovieClip 
    {
        public function Main() {
            a = a + 1;
            trace(a);
            Main();
        }
    }
}

注意:这不好!它会永远持续下去,没有好处。这可能更有意义:

package
{
    import flash.display.MovieClip;

    public class Main extends MovieClip 
    {
        public function Main() {
            var a:int = 0;
            while (a < 1000)  // desired upper value here 
            { 
                trace(a); 
                a++; 
            }
        }
    }
}

答案 3 :(得分:-1)

你的意思是什么?您的变量也没有初始值:

var a:int = 0;
a = a + 1;
trace(a);