티스토리 뷰

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
댓글
공지사항
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31