【发布时间】:2025-11-28 17:25:01
【问题描述】:
我有以下功能可以在游戏中设置卡片。我创建了一个数组来保存卡片的种类,并创建了另一个数组来保存卡片的位置。
private function setPlayerCard(cardNumber:int, cardPos:int):void{
for (var i:int = 1; i < _CardGridInstance.numChildren+1; i++) {
var _position:MovieClip = MovieClip(_CardGridInstance.getChildByName("Position_" + i));
cardPositions[i] = _position;
cardPositions[i].pos_name.text = "position" + i;
cardPositions[i].id = ["pos"+i];
}
for (var j:int = 1; j < numCards+1; j++) {
var _c:Class = getDefinitionByName("Card_" + j) as Class;
var _cardInstance:MovieClip = new _c();
cards[j] = _cardInstance;
}
cards[cardNumber].x = _CardGridInstance.x + cardPositions[cardPos].x - 1;
cards[cardNumber].y = _CardGridInstance.y + cardPositions[cardPos].y;
addChild(cards[cardNumber]);
}
所以如果我想将卡号“3”设置在位置“5”,我只需写:
setPlayerCard(3,5);
我可以看到的问题是,每次我想放置一张卡片时,我都会创建两个数组。我想让数组“全局”(即在我的文档类的构造函数中创建它)并在函数“setPlayerCard”中重用它,但是当我尝试这样做时出现错误。
有什么建议吗?
【问题讨论】:
标签: actionscript-3 arrays scope