我目前正在使用AS3编程一个纸牌游戏,并使用一个数据对象来存储纸牌数据(电影剪辑对象、纸牌值和纸牌套装)。下面的代码(aceOfHearts是我库中电影剪辑对象的名称):
var aceOfHeartsCard:Object = {cardObject: aceOfHearts, faceValue: "ACE", suit: "HEARTS"};
我这样做是为了牌组中的所有52张牌。然后,我将这些物体中的每一个推入一个阵列,我用它来洗牌和发牌。下面的代码。
cardArray.push(aceOfHeartsCard);
在这一点上,一切都很好。我可以引用cardArray[0]。faceValue,它将正确返回"ACE"等。然而,当我尝试使用以下代码将电影剪辑对象添加到舞台时:
cardArray[0].cardObject.x = 0;
cardArray[0].cardObject.y = 0;
addChild(cardArray[0].cardObject);
我得到这个错误:
TypeError: Error #1034: Type Coercion failed: cannot convert aceOfHearts$ to flash.display.DisplayObject.
有人能解释一下我做错了什么吗?
啊哈!事实证明,我所需要做的就是编辑我在上面发布的第一行代码,并在我的电影剪辑名称之前添加"新"一词。
var aceOfHeartsCard:Object = {cardObject: new aceOfHearts, faceValue: "ACE", suit: "HEARTS"};