0

我正在尝试使用 ActionScript 3 在 Flash 中制作纸牌游戏。我不太熟悉该语言(随着 AS2 长大),但我认为它更适合这个项目。

不过,这方面的坏处是我马上遇到了一个问题:我将每张卡片都视为一个电影剪辑,但我真正需要的是为卡片分配一些整数值(事实并非如此,但作为一个例子,假设我正在玩扑克,我希望所有的 A 都携带价值 1,因为它们是最好的牌,2 给国王,等等)。

我试图寻找它,但我发现的只是如何制作电影剪辑数组。我知道这个问题应该不会太难!有人可以帮助我吗?

(顺便说一句,我真的应该使用电影剪辑还是按钮更方便?)

4

3 回答 3

3

首先,从我的角度来看,除非你真的需要,否则不要使用组件,因为它们需要更长的时间来绘制并且它们不灵活。过去我和他们有很多问题(我发布的这个问题就是其中之一)。

关于 MovieClip 的... MovieClip 类是动态的,因此您可以为它分配任何虚拟属性,没问题。所以yourMcInstance.someVar = 3是完全有效的。

我认为 AS3 的主要变化之一是引入了Sprite类,它基本上是一个没有时间线的 MovieClip。它要轻得多,除非您手动创建帧动画,否则它是为任何可以处理鼠标(和许多其他)事件的容器选择的类。但是,它不是动态类,因此yourSpriteInstance.someVar = 3无效。这就是为什么鼓励使用自定义类的原因。使用自定义类,您可以选择扩展类并创建自定义属性和方法。

于 2013-01-03T14:49:30.340 回答
0

要将影片剪辑添加到数组:

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;
}
于 2013-01-03T15:01:00.920 回答
0

因为影片剪辑是对象,所以您实际上可以将变量直接附加到它们。

var card:MovieClip = new MovieClip(); //create a blank MC
addchild(card);

card.id = 5; //You can attach vars like this
于 2013-01-03T14:49:30.163 回答