티스토리 뷰
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());
}
}
-------------------이 코드는있는 그대로 작동하지 않을 수 있지만 (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);
}
}
이제 나는 Card 선언에 대해 긍정적 인 것은 아니지만 (컴파일을 통해 구문을 확인할 수있는 Flash 사본이 없습니다) "deck [x] = new Card ..."줄이해야 할 일은 다음과 같습니다. 처음 13 장의 카드를 C, 두 번째 13 장을 D 등으로 설정하고 값을 0에서 13까지 설정합니다 (Ace = 0, 2 = 1, 3 = 2, ..., K = 12).
그것이 의미가 있기를 바랍니다 (그리고 그것이 당신을 위해 작동하도록 너무 많이 조정할 필요가 없기를 바랍니다).
출처
https://stackoverflow.com/questions/1905082
댓글