Actionscript 3 为什么我的AS3代码不起作用?为什么变量不是不断增加,而是等于1?
一开始?我是ActionScript3和Flashdevelop的新手。 为什么var a的值不是不断增加,而是等于1?我哪里有错误Actionscript 3 为什么我的AS3代码不起作用?为什么变量不是不断增加,而是等于1?,actionscript-3,flashdevelop,Actionscript 3,Flashdevelop,一开始?我是ActionScript3和Flashdevelop的新手。 为什么var a的值不是不断增加,而是等于1?我哪里有错误 package { import flash.display.MovieClip; public class Main extends MovieClip { public function Main() { var a: int; a = a + 1;
package
{
import flash.display.MovieClip;
public class Main extends MovieClip
{
public function Main() {
var a: int;
a = a + 1;
trace(a);
}
}
}
你是什么意思?此外,您的变量没有初始值:
var a:int = 0;
a = a + 1;
trace(a);
你是什么意思?此外,您的变量没有初始值:
var a:int = 0;
a = a + 1;
trace(a);
Main函数是主类的构造函数,因此只调用一次。因此,变量“a”只递增一次。您需要添加某种类型的循环,以使“a”更频繁地递增。主函数是主类的构造函数,因此只调用一次。因此,变量“a”只递增一次。您需要添加某种类型的循环,以使“a”更频繁地递增。您的变量是函数的局部变量,因此每次调用函数时,都会创建一个具有默认值的新变量(对于
int
type,它是0),然后递增,然后跟踪,从而看到1。另外,如果您计划存储交叉运行的变量,请使用SharedObject
存储,因为如果重新启动编译的SWF,即使是全局或静态类范围的变量也不会保留其值。您的变量是函数的局部变量,因此每次调用函数时,都会使用一个具有默认值的新变量(对于int
类型,它是0)创建,然后递增,然后跟踪,结果是1。另外,如果您计划存储变量交叉运行,请使用SharedObject
存储,因为如果重新启动编译的SWF,即使是全局或静态类范围的变量也不会保留其值。以上所有答案都是正确的。下面是一种可能有效的方法k、 类似于你正在做的事情
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++;
}
}
}
}
包
{
导入flash.display.MovieClip;
公共类Main扩展了MovieClip
{
公共功能Main(){
变量a:int=0;
而(a<1000)//此处需要的上限值
{
微量元素(a);
a++;
}
}
}
}
以上所有答案都是正确的。下面是一种可能有效的方法,与您正在做的类似
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++;
}
}
}
}
包
{
导入flash.display.MovieClip;
公共类Main扩展了MovieClip
{
公共功能Main(){
变量a:int=0;
而(a<1000)//此处需要的上限值
{
微量元素(a);
a++;
}
}
}
}
一个简单类型的变量在没有初始化代码的情况下被赋予初始值。对于int,它是0,但是对于Number
类型,它是未定义的,这导致迄今为止许多游戏开发人员受到严重的伤害:)感谢Vesper的澄清。如果有人一直被未初始化的变量抛出,当没有初始化代码时,简单类型的变量被赋予初始值。对于int,它是0,但是对于Number
type,它是未定义的
,这导致了迄今为止许多游戏开发人员的严重伤害:)感谢Vesper的澄清。如果有人一直被未初始化的变量抛出,那么有些事情做得不对。请注意,Vesper和moosefetcher下面给出的答案都是正确的。构造函数Main()
只执行一次。如果您(以某种方式)再次调用它,那么变量a
只是一个局部变量,每次调用函数时都会重置(将其升级为成员变量)。请注意,下面Vesper和moosefetcher的回答都是正确的。构造函数Main()
只执行一次。如果要(以某种方式)再次调用它,变量a
只是一个局部变量,每次调用函数时都会重置它(将其升级为成员变量)。