所以它是基本的..我需要这个位图将红色方块图像保存到一个数组中...但它告诉我我正在访问一个未识别的方法或属性......这或多或少是我第一次使用数组我看到了一堆关于使用它们的东西以及为什么,我认为这就是他们指出如何将它们分配给某些东西......所以如果我做错了可以有人告诉我......我只是想学习他们如何通过尝试来工作......
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:无法访问空对象引用的属性或方法。 at gamefile_fla :: MainTimeline / firstchoice()[gamefile_fla.MainTimeline :: frame4:13]
答案 0 :(得分:1)
你的数组开始是空的,所以当你尝试访问位置零时,它会变得混乱。而不是使用以下代码行:
myImages[0] = new BitmapData(151, 167);
使用
myImages.push(new BitmapData(151, 167));
push命令将添加一个元素到结尾一个数组,所以大小会增加1.现在你可以安全地使用myImages[0].draw(red_square);
。
当你声明你的数组变量var myImages:Array
时,最好初始化它,无论是在构造函数中还是在某种方法中,都要将其更改为var myImages:Array = new Array();
。
答案 1 :(得分:0)
实际上,在访问数组之前,您尚未实例化该数组。 试试这个:
var myImages:Array= new Array();