1

所以它是基本的..我需要这个位图来将红色正方形图像保存到一个数组中......但它向我展示了我正在访问一个身份不明的方法或属性......这或多或少是我第一次使用数组,我看到了一堆关于如何使用它们以及用于什么的 tuts,我认为这就是他们指出将它们分配给某物的方式..所以如果我做错了什么,有人可以告诉我..我只是想了解它们是如何工作的通过尝试...

var myImages:Array;

red_square.addEventListener( MouseEvent.CLICK, firstchoice);
function firstchoice (e:MouseEvent){
    finalsave.redsquare = 1;
    myImages[0] = new BitmapData(151, 167);
    bitmap = new Bitmap (myImages[0]);
    addChild(bitmap);
    myImages[0].draw (red_square);
    gotoAndPlay(5);
    stop();
};

我得到的错误是

TypeError:错误 #1009:无法访问空对象引用的属性或方法。在 gamefile_fla::MainTimeline/firstchoice()[gamefile_fla.MainTimeline::frame4:13]

4

2 回答 2

1

您的数组一开始是空的,所以当您尝试访问零位置时,它会感到困惑。而不是使用这行代码:
myImages[0] = new BitmapData(151, 167);
use
myImages.push(new BitmapData(151, 167));

push 命令将在数组末尾添加一个元素,因此大小将增加 1。现在您可以安全地使用myImages[0].draw(red_square);.

此外,当您声明数组变量时,var myImages:Array最好在构造函数或某些方法中对其进行初始化,因此将其更改为var myImages:Array = new Array();.

于 2013-01-05T03:59:04.590 回答
0

实际上,您在访问它之前还没有实例化数组。试试这个:

var myImages:Array= new Array();
于 2013-10-24T10:05:57.757 回答