часть вопросов здесь пропадет, если авторы изучат алгоритмы и отладку до того, как задавать вопросы.

м классе программирования

Мне нужно создать игру Tiles с AS3 (например, Zelda).

На карте тайлы инициализируются черным в массиве, и после этого они меняются случайным образом каждый раз, когда левый пик песни достигает определенного значения.

Когда плитки меняются, мне нужно обновить массив с новым значением. На самом деле, я всегда получаю сообщение об ошибке # 1010: термин не определен и не имеет свойств.

Вот как инициализируются плитки:

переменная

    private var grid: MovieClip;
    private var nbRow: int = 6; 
    private var nbCol: int = 12; 
    private var oneTiles: Tiles;
    private var t: Tiles;

    public var tMap: Array = [
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
    ];

Создание карты

     private function createGrid(): void {
          grid = new MovieClip();
          addChild(grid);

          for (var r: int = 0; r < nbRow; r++) {
               for (var c: int = 0; c < nbCol; c++) {
                   t = new Tiles();
                   t.x = t.width * c;
                   t.y = t.height * r;
                   grid.addChild(t);
               }
         }
     }

Установить плитки

    private function displayTiles(): void {
        var i: int = 0;
        for (var r: int = 0; r < nbRow; r++) {
            for (var c: int = 0; c < nbCol; c++) {
                var t: Tiles;
                t = Tiles(grid.getChildAt(i));
                t.gotoAndStop(tMap[r][c]);
                i++;
            }
        }
    }

Эта функция вызывается каждый раз, когда значение leftpeak достигает значения

    private function resetTiles(): void {
        for (var i: int = 0; i < grid.numChildren; i++) {
            oneTiles = grid.getChildAt(i) as Tiles;

            oneTiles.getTiles();
            //30% chance gotoAndStop(1) black tiles
            //70% chance gotoAndStop(2) white tiles
       }
    }

Это источник проблемы: чтобы обновить массив, я добавил это в цикл for resetTiles (). Я всегда получаюОшибка # 1010: термин не определен и не имеет свойств. :

            private var posX: uint = 0; //global
            private var posY: uint = 0; //global

            tMap[posX][posY] = oneTiles.getFrame();

            if(posX == 11 && posY != 5){
                posX = 0;
                posY++;
            }else if(posX == 11 && posY == 5){
                posX = 0;
                posY = 0;
            }else{
                posX++;
            }
            trace(posX);
            trace(posY);

        }
Так в чем же проблема? Обычно, с этим кодом, каждый раз, когда плитка изменяется, хорошая плитка в tMap должна обновляться.Я провел некоторое тестирование, и источником проблемы является линияtMap [posX] [posY] = oneTiles.getFrame (); Тем не менее, я не могу понять, почему
public function getFrame():void{
            this.currentFrame;
    }

Ответы на вопрос(1)

Ваш ответ на вопрос