Невозможно обновить значения в массивах - PullRequest
0 голосов
/ 21 ноября 2011

Я использую Titanium Appcelerator.

У меня есть набор кнопок, которые я создал для игры. Существует один массив кнопок на игрока. У меня также есть массив объектов игрока, и у каждого есть свойство "Score".

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

Вот как я создаю набор кнопок для каждого игрока:

for(var i=0;i<7;i++){
    playerButtons[i] = Titanium.UI.createButton({
        myPlayer: thePlayer,
        index: i,
        value: 50,
        touchEnabled: true,
    });
}

Я устанавливаю свойство myPlayer для игрока, которому принадлежит кнопка. Это сделано для того, чтобы я мог связать его с игроком при нажатии, и чтобы я знал, какой счет обновлять. Этот цикл for находится в функции, которая вызывается в начале игры, и ему передается переменная "thePlayer", которая содержит объект игрока, которому она принадлежит. Тем не менее, здесь, кажется, разъединение. Пример: если счет игрока 1, скажем, 0, и нажата кнопка стоимостью 50, я делаю одно из следующих действий, которые не влияют на свойство объекта для счета игрока:

(нажата кнопка "this")

var totalScore = 50;
this.myPlayer.score = totalScore;
player[1].score = totalScore;
Ti.API.debug(player[1].score) //this prints out 0, not 50

Не знаю, почему я не могу изменить счет игрока. Надеюсь, это достаточно ясно.

1 Ответ

0 голосов
/ 22 ноября 2011

Массивы, назначенные объектам TiProxy, не работают должным образом. Смотрите мой ответ здесь: Пустой массив после добавления элементов с помощью Titanium Appcelerator mobile 1.7.2

...