flash – 在as3中创建一堆类似于Solitaire堆栈的卡片

我正在创建一个纸牌游戏一切都很好,但我无法创建一堆卡片如下:

如果我有4个卡片以数组表示,例如4,5,6,7个黑桃,那么我希望将优先级最低的卡放在顶部,将最高优先级的卡放在第一个卡后面.

怎么能实现这个目标?

最佳答案 我假设您知道如何创建DisplayObjects(您的视觉卡片),所以在我的回答中我不会提到它.

我会创建一个持有者精灵并添加我的卡片以控制卡片深度顺序.您可以使用addChild(在前面添加displayObject)或addChildAt(将displayObject添加到您想要的位置)将卡添加到堆栈精灵中.如果使用addChildAt并使用0作为索引,它将在所有其他displayObjects下面添加它并向上推送一个索引.如果已在显示列表中有卡,则可以使用setChildIndex更改索引.

var cardList : Array;
var cardStack : Sprite = new Sprite();
addChild(cardStack);

for(var i : int = 0 ; i < cardList.length ; i++)
{
    // adds it at below all displayObject in "cardStack"
    cardStack.addChildAt(cardList[i], 0);
    // adds it on top of all displayObject in "cardStack"
    cardStack.addChild(cardList[i]);
}
点赞