2011-11-21 51 views
0

我正在使用Titanium Appcelerator。无法更新数组中的值

我有一个我为游戏创建的按钮数组。每个玩家有一组按钮。 我也有一个玩家对象数组,每个人都有一个“分数”属性。

当玩家按下其中一个按钮,其中全部都有一个指定值时,此按钮所属的玩家将更新其分数。

这里是我如何创建为每个玩家一组按钮:

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 

不知道为什么我不能更改玩家的分数。我希望这很清楚。

回答