0

首先?我是 actionscript 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

4 回答 4

3

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

于 2013-09-03T13:26:00.513 回答
3

Main 函数是 Main 类的构造函数,因此只被调用一次。因此,变量“a”只会增加一次。您将需要添加某种循环以更频繁地增加“a”。

于 2013-09-03T13:24:53.287 回答
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++; 
            }
        }
    }
}
于 2013-09-03T14:31:46.003 回答
-1

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

var a:int = 0;
a = a + 1;
trace(a);
于 2013-09-03T13:24:33.937 回答