我有两个类,一个类声明静态数组(总共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
}
答案 0 :(得分:1)
你的代码会有很多话要说!您的数组Main.Okchurray
很可能是空的,因为您没有向其推送任何内容(至少在您发布的代码中没有),因此Main.Okchurray[0]
为undefined
,undefined.x
引发TypeError:错误#1010。换句话说,您正在尝试使用尚未初始化的值