AS3静态阵列无法正常运行

时间:2014-07-01 14:06:00

标签: actionscript-3 actionscript

我有两个类,一个类声明静态数组(总共3个,它们都存储对象),另一个类更改这些数组中对象的值,例如字符的x值或背景对象。

问题在于,更改这些静态数组对象的值的另一个类只能使用一个Main.Level1rray[0]数组,同时Main.Okechurray[0]产生错误{{1}当我尝试更改x值时(它与其他数组一起使用但不是这个。这非常奇怪)。

查看代码,您将看到它的外观,以便您可以帮助我理解错误

(这是因为它的工作时间为1/2的阵列)

P.S。我将这些数组放入公共静态数组中,以便其他类可以与它们进行交互。

声明TypeError: Error #1010: A term is undefined and has no properties.

的类
Public Static Arrays

} }

改变这些package { import flash.display.MovieClip; import flash.events.Event; public class Main extends MovieClip { public static var Okchurray:Array = new Array(); //***HERE**** public static var Banditrray:Array = new Array(); //***HERE**** public static var Level1rray:Array = new Array(); //***HERE**** public static var outOfBoundsL:Boolean; public static var outOfBoundsR:Boolean; public function Main() { // constructor code stage.addEventListener(Event.ENTER_FRAME, loop) //parent.addChild(Okchurray[0]); MovieClip(root).objtxt.text = "Objective: Get Your Passport."; } function loop(e:Event){ //if okechuku is left or right of the screen stop him and let him walk LeftRightTest(); //check to see if bandit and okochuku are touching HitTestOknBan(); trace(Main.Okchurray.length); //if ((Arg[0].x > 500) || (Arg[0].x < 100)){outOfBounds=false;} } function LeftRightTest(){ //Holler at bob the builder this is broken. if ((Main.Okchurray[0].x > 500) && (Okechuku.D)){ MainLevel.rightSide=true; outOfBoundsR=true;} else {MainLevel.rightSide=false; outOfBoundsR=false;} if ((Main.Okchurray[0].x < 100) && (Okechuku.A)){ MainLevel.leftSide=true; outOfBoundsL=true;} else {MainLevel.leftSide=false; outOfBoundsL=false;} //***HERE**** } function HitTestOknBan(){ if((Main.Banditrray[0]).hitTestObject(Main.Okchurray[0])){ trace("gotcha"); Main.Okchurray[0].x = 10 } } 的{​​{1}}值的类:

x

}

1 个答案:

答案 0 :(得分:1)

你的代码会有很多话要说!您的数组Main.Okchurray很可能是空的,因为您没有向其推送任何内容(至少在您发布的代码中没有),因此Main.Okchurray[0]undefinedundefined.x引发TypeError:错误#1010。换句话说,您正在尝试使用尚未初始化的值