Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash CS4[AS3]:使用循环生成阵列_Flash_Actionscript 3_Arrays_Loops - Fatal编程技术网

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,你可能已经告诉我我不知道我在做什么。