2013-01-03 41 views
0

我正在尝试使用ActionScript 3在Flash中制作纸牌游戏。我对语言不太熟悉(用AS2长大),但我认为它更适合于这个项目。尽管如此,我马上遇到了一个问题:我将每张卡片视为一个动画片段,但我真正需要的是将一些整数值分配给卡片(这不是真是如此,但举个例子,假设我正在参加一场扑克比赛,我希望所有的A都能拿到1的价值,因为他们是最好的卡牌,2代表国王,等等)。在ActionScript 3中为影片剪辑分配整数值

我试过寻找它,但我发现的是如何使动画片段的数组。我知道这个问题不应该太难!有人能帮助我吗?

(顺便指出,要真我的电影剪辑工作,或将按钮更方便?)

回答

3

首先,从我的角度来看,从来不使用的组件,除非你真的需要,因为他们需要更长的时间来绘制和他们不灵活。我过去曾经遇到过很多问题(我发布的是this question)。

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

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

+0

非常感谢!这真的很有帮助。将考虑到这一点。哇,我不会想象它那么简单。猜猜这就是为什么我在其他地方找不到它。再次感谢! – Anthony

0

,因为影片剪辑的对象,你其实可以加上变量直接交给他们。

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

card.id = 5; //You can attach vars like this 
+2

这实际上是因为MovieClip类是动态的,而不是因为它是一个对象。事实上,除了少数(如标量)之外,AS3.0中的任何类扩展了基类对象类。 – inhan

+0

谢谢!我认为这会有点难,但是,看起来像AS3是灵活的那样 – Anthony

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; 
} 
+0

是的。谢谢,但我真的提到了数组,因为我发现了这个问题的各种答案,没有一个是我的,这有点令人沮丧。不过,我一定会使用类似的代码片段。 – Anthony

相关问题