所以我得到了2d数组作为简单的地图编辑器 地图的每个图块/单元格默认值为0,并且是mouseClick事件侦听器。
for (var i:int =0; i < _numRow; i++)
{
_map[i] = new Array ;
for (var j:int = 0; j< _numCol; j++)
{
//I removed some content
_tile.val = 0;
_tile.addEventListener(MouseEvent.CLICK,onMouseClick);
addChild(_tile);
_map[i][j] = _tile.val;
}
}
编辑: 现在我点击一个图块/单元格,这将会发生。问题被评论了。
private function onMouseClick(e:MouseEvent)
{
if (e.currentTarget.val == 0)
{
e.currentTarget.val = 1;
trace(e.currentTarget.val); // trace the output I want, which is 1 of each tile I clicked.
e.currentTarget.transform.colorTransform = new ColorTransform(1,0,0);
trace(_map[0]); // now I check here if _map will be change since _map[x][x] = _tile.val, it should output the change I made above. Like [[1,1,1,0,1,0...]]
}
但没有输出没有变化。 _map仍为= [[0,0,0,0,0,0,0 ...]]
正如我所说,也许我在这里缺少简单的东西,但我不知道是什么。
如果这还不清楚请告诉我,我会解释得更多。谢谢你们。
答案 0 :(得分:1)
- 抓原创答案 -
您想要实现的目标有两种:
您目前面临的问题可以图示为:
_map[i][j]---|
| |----|
|->| 0 |
_tile.val----| |----|
但是,在为_tile.val分配1之后,结果将类似于:
_map[i][j]-->|-----|
| 0 |
|-----|
_tile.val--->|-----|
| 1 |
|-----|
希望它有所帮助。