Flash CS4[AS3]:使用循环生成阵列
下面我有一个可以工作的数组,但是它太长了,我想有一个更简单的方法可以使用循环生成相同的结果,但是我现在还不能理解它。数组如下所示:Flash CS4[AS3]:使用循环生成阵列,flash,actionscript-3,arrays,loops,Flash,Actionscript 3,Arrays,Loops,下面我有一个可以工作的数组,但是它太长了,我想有一个更简单的方法可以使用循环生成相同的结果,但是我现在还不能理解它。数组如下所示: var CardDeck = new Array(); CardDeck[0] = new C1(); CardDeck[1] = new C2(); CardDeck[2] = new C3(); CardDeck[3] = new C4(); CardDeck[4] = new C5(); CardDeck[5] = new C6(); CardDeck[6]
var CardDeck = new Array();
CardDeck[0] = new C1();
CardDeck[1] = new C2();
CardDeck[2] = new C3();
CardDeck[3] = new C4();
CardDeck[4] = new C5();
CardDeck[5] = new C6();
CardDeck[6] = new C7();
CardDeck[7] = new C8();
CardDeck[8] = new C9();
CardDeck[9] = new C10();
CardDeck[10] = new C11();
CardDeck[11] = new C12();
CardDeck[12] = new C13();
CardDeck[13] = new D1();
CardDeck[14] = new D2();
CardDeck[15] = new D3();
CardDeck[16] = new D4();
CardDeck[17] = new D5();
CardDeck[18] = new D6();
CardDeck[19] = new D7();
CardDeck[20] = new D8();
CardDeck[21] = new D9();
CardDeck[22] = new D10();
CardDeck[23] = new D11();
CardDeck[24] = new D12();
CardDeck[25] = new D13();
CardDeck[26] = new H1();
CardDeck[27] = new H2();
CardDeck[28] = new H3();
CardDeck[29] = new H4();
CardDeck[30] = new H5();
CardDeck[31] = new H6();
CardDeck[32] = new H7();
CardDeck[33] = new H8();
CardDeck[34] = new H9();
CardDeck[35] = new H10();
CardDeck[36] = new H11();
CardDeck[37] = new H12();
CardDeck[38] = new H13();
CardDeck[39] = new S1();
CardDeck[40] = new S2();
CardDeck[41] = new S3();
CardDeck[42] = new S4();
CardDeck[43] = new S5();
CardDeck[44] = new S6();
CardDeck[45] = new S7();
CardDeck[46] = new S8();
CardDeck[47] = new S9();
CardDeck[48] = new S10();
CardDeck[49] = new S11();
CardDeck[50] = new S12();
CardDeck[51] = new S13();
有人能告诉我如何把这些放在一起形成一个循环,从而产生相同的结果吗
谢谢
Ben此代码可能无法正常工作(我对AS3有点生疏),但经过一些调整后,它应该会将您引导到正确的方向:
public class Card {
var suit:String;
var value:int;
public Card(Suit:String, Value:int)
{
this.suit = Suit;
this.value = Value;
}
}
public class Deck {
var deck:Array = new Array();
var suits:Array = new Array('C', 'D', 'H', 'S');
for (var x = 0; x < 52; x++) {
deck[x] = new Card(suits[x / 13], x % 13);
}
}
公共类卡{
服装:细绳;
var值:int;
公共卡(套装:字符串,值:int)
{
这套衣服;
这个值=值;
}
}
公务舱甲板{
变量组:数组=新数组();
变量:数组=新数组('C','D','H','S');
对于(变量x=0;x<52;x++){
牌组[x]=新卡(适合[x/13],x%13);
}
}
现在我对卡片声明不太肯定(我手头没有Flash的副本,无法通过编译检查语法),但是“deck[x]=newcard…”行应该做的是将前13张卡片设置为C,第二张13设置为D,等等,并将值设置为0到13(表示Ace=0,2=1,3=2,…,K=12)
希望这是有意义的(我希望您不必对其进行太多的调整以使其为您工作)。此代码可能无法正常工作(我对AS3有点生疏),但经过一些调整后,它将引导您朝着正确的方向前进:
public class Card {
var suit:String;
var value:int;
public Card(Suit:String, Value:int)
{
this.suit = Suit;
this.value = Value;
}
}
public class Deck {
var deck:Array = new Array();
var suits:Array = new Array('C', 'D', 'H', 'S');
for (var x = 0; x < 52; x++) {
deck[x] = new Card(suits[x / 13], x % 13);
}
}
公共类卡{
服装:细绳;
var值:int;
公共卡(套装:字符串,值:int)
{
这套衣服;
这个值=值;
}
}
公务舱甲板{
变量组:数组=新数组();
变量:数组=新数组('C','D','H','S');
对于(变量x=0;x<52;x++){
牌组[x]=新卡(适合[x/13],x%13);
}
}
现在我对卡片声明不太肯定(我手头没有Flash的副本,无法通过编译检查语法),但是“deck[x]=newcard…”行应该做的是将前13张卡片设置为C,第二张13设置为D,等等,并将值设置为0到13(表示Ace=0,2=1,3=2,…,K=12)
希望这是有意义的(我希望您不必对其进行太多的调整以使其为您工作)。您可以使用getDefinitionByName来获取对编号卡片类的引用,如下所示:
import flash.utils.getDefinitionByName;
var deck:Array = [];
var suits:Array = ['C', 'D', 'H', 'S'];
var card:Class;
for each(var suit:String in suits) {
for(var i:int = 1; i <= 13; i++) {
card = getDefinitionByName(suit + i) as Class;
deck.push(new card());
}
}
import flash.utils.getDefinitionByName;
变量组:数组=[];
变量:数组=['C','D','H','S'];
var卡:类;
对于每个(变量套装:串入套装){
对于(var i:int=1;i您可以使用getDefinitionByName获取对编号卡片类的引用,如下所示:
import flash.utils.getDefinitionByName;
var deck:Array = [];
var suits:Array = ['C', 'D', 'H', 'S'];
var card:Class;
for each(var suit:String in suits) {
for(var i:int = 1; i <= 13; i++) {
card = getDefinitionByName(suit + i) as Class;
deck.push(new card());
}
}
import flash.utils.getDefinitionByName;
变量组:数组=[];
变量:数组=['C','D','H','S'];
var卡:类;
对于每个(变量套装:串入套装){
对于(var i:int=1;i)您为每一张卡创建了一个全新的类?这看起来不是有点广泛吗?也许您可以创建一个卡类,并允许它具有引发与卡组相关的值的属性(顺便说一句,这将解决您遇到的问题).呃…太多了,不是太多了。谢谢你的回答,迈克尔,你会怎么做?你能给我一些示例代码吗?这是我第一次真正尝试AS3,你可能已经告诉我我不知道我在做什么。你为每一张卡创建了一个全新的类?这看起来不是太多了吗?也许你可以c创建一个卡类,并允许它具有引发与卡组相关的值的属性(顺便说一句,这将解决您遇到的问题).呃…太多了,没有太多。谢谢你的回答。迈克尔,你会怎么做?你能给我一些示例代码吗?这是我第一次真正尝试AS3,你可能已经告诉我我不知道我在做什么。