我正在尝试使用ActionScript 3在Flash中制作纸牌游戏。我不太熟悉该语言(与AS2一起成长)但我认为它更适合这个项目。
但是,关于这一点的坏处是,我立即遇到了一个问题:我将每张卡片视为一个动画片段,但我真正需要的是为卡片分配一些整数值(这不是真的但是作为一个例子,我想说我正在玩扑克,我希望所有的A都携带值1,因为它们是最好的牌,2是国王,等等。)我试过寻找它,但我发现的是如何制作动画片段的数组。我知道这个问题不应该太难!有人可以帮帮我吗?
(另外请注意,我应该真的使用电影剪辑还是按钮会更方便?)
答案 0 :(得分:3)
首先,从我的观点来看,除非你真的需要,否则永远不要使用组件,因为它们需要更长的时间来绘制,而且它们不灵活。我过去曾经遇到过很多问题(this question我发布的是其中之一)。
关于MovieClip的... MovieClip类是动态,因此您可以为其分配任何虚拟属性,没问题。所以yourMcInstance.someVar = 3
完全有效。
我认为,AS3的一个主要变化是引入了 Sprite 类,它基本上是一个没有时间轴的MovieClip。它要轻得多,除非你手动创建帧动画,否则它是为任何可以处理鼠标(和许多其他)事件的容器选择的类。但是,它不是动态类,因此yourSpriteInstance.someVar = 3
无效。这就是鼓励使用自定义类的原因。使用自定义类,您可以选择扩展类并创建自定义属性和方法。
答案 1 :(得分:0)
因为Movieclips是Objects,你实际上可以直接将变量附加到它们。
var card:MovieClip = new MovieClip(); //create a blank MC
addchild(card);
card.id = 5; //You can attach vars like this
答案 2 :(得分:0)
将MovieClip添加到数组:
const clips:Array = [];
function addNewCardToCardsArray(array:Array, color:String, value:int):MovieClip {
const clip:MovieClip = new MovieClip();
clip.color = color;
clip.value = value;
return array[array.length] = clip;
}