Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос от новичка, как подключить библиотеку ascb 
:(
    Опции темы
PPie
Дата 1.12.2010, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.12.2010

Репутация: нет
Всего: нет



Здравствуйте, начал изучать as 3.0 по учебнику, в котором советовалось скачать библиотеку ascb, что я успешно сделал и добавил её к требуемому проекту по инструкции указанной на том же сайте. Конкретнее я использовал класс NumberUtilities(import ascb.util.NumberUtilities), но при компиляции появилась ошибка 1172: Не удалось найти определение ascb.util:NumberUtilities. В исходном пути к проекту добавлял папку с этой библиотекой, и даже "автозаполнение" её нашло. Подскажите пожалуйста. Заранее благодарю.

PM MAIL   Вверх
triclosan
Дата 1.12.2010, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: нет
Всего: 12



в IDE работаете, в каком?
PM MAIL   Вверх
PPie
Дата 1.12.2010, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.12.2010

Репутация: нет
Всего: нет



Adobe Flash Builder 4
PM MAIL   Вверх
SoWa
Дата 1.12.2010, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 1
Всего: 74



Бывает у Флекса такое, бывает. Танцы с бубнами вокруг директорий с библиотеками.
Положи её ручками в папку с проектом, или просто класс себе возьми один, не тащи всю библиотеку.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Maksys
Дата 2.12.2010, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Future Splasher
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 15.6.2005
Где: Екатеринбург

Репутация: нет
Всего: 17



import прописан?


--------------------
 С уважением, BiMaWa™©.
user posted image
user posted image
PM MAIL ICQ Skype GTalk   Вверх
PPie
Дата 2.12.2010, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.12.2010

Репутация: нет
Всего: нет



Да уже потанцевал с директориями. В инструкции было написано, что путь надо указать к папке AS3Library. Я так и сделал, попробовал потом указать к папке classes, которая лежала в AS3Library и всё заработало).
Я думаю никто не против, если я задам ещё вопрос в этой теме)из той же библиотеки использую класс Cards, который в свою очередь ссылается на другие из того же файла, почему то перед этими классами стоит служебное слово Private. Я так понимаю с классы всега должны быть public, поэтому и появляется ошибка, что private используется для определения свойств класс. Попытался сделать классы public,  в итоге вылезла ошибка 
"Файл, найденный по исходному пути, не может иметь более одного определения, видимого вне программы". Где я туплю?
Библиотека:
Код

package ascb.play {

  import ascb.util.NumberUtilities;
  import ascb.util.ArrayUtilities;

  public class Cards {

    private var _cdkDeck:CardDeck;

    // The Cards constructor creates a deck of cards.
    public function Cards() {
      _cdkDeck = new CardDeck();
    }

    // The deal() method needs to know the number of players in the game 
    // and the number of cards to deal per player. If the cardsPerPlayer 
    // parameter is undefined, then it deals all the cards.
    public function deal(nPlayers:Number, nPerPlayer:Number = -1):Array {

      _cdkDeck.reset();
      _cdkDeck.shuffle();

      // Create an array, players, that holds the cards dealt to each player.
      var aHands:Array = new Array();

      // If a cardsPerPlayer value was passed in, deal that number of cards.
      // Otherwise, divide the number of cards (52) by the number of players.
      var nCardsEach:Number = (nPerPlayer == -1) ? Math.floor(_cdkDeck.deck.length / nPlayers) : nPerPlayer;

      // Deal out the specified number of cards to each player.
      for (var i:uint = 0; i < nPlayers; i++) {

        aHands.push(new CardHand(_cdkDeck));

        // Deal a random card to each player. Remove that card from the 
        // tempCards array so that it cannot be dealt again.
        for (var j:Number = 0; j < nCardsEach; j++) {
          aHands[i].hand.push(_cdkDeck.deck.shift());
        }

        // Use Cards.orderHand() to sort a player's hand, and use setHand() 
        // to assign it to the card player object.
        aHands[i].orderHand();
      }

      // Return the players array.
      return aHands;
    }
  }
  
    private class Card {

    private var _nValue:Number;
    private var _sName:String;
    private var _sSuit:String;

    public function get value():Number {
      return _nValue;
    }

    public function get name():String {
      return _sName;
    }

    public function get suit():String {
      return _sSuit;
    }

    public function get display():String {
      return _sName + " " + _sSuit;
    }

    public function Card(nValue:Number, sName:String, sSuit:String) {
      _nValue = nValue;
      _sName = sName;
      _sSuit = sSuit;
    }

    public function toString():String {
      return display;
    }
    
  }
  
    private class CardDeck {
  
    private var _aCards:Array;
  
    public function get deck():Array {
      return _aCards;
    }
    
    public function CardDeck() {
      _aCards = new Array();
      reset();
    }
    
    public function reset():Void {
      for(var i:Number = 0; i < _aCards.length; i++) {
        _aCards.shift();
      }

      // Create a local array that contains the names of the four suits.
      var aSuits:Array = ["Hearts", "Diamonds", "Spades", "Clubs"];

      // Specify the names of the cards for stuffing into the cards array later.
      var aCardNames:Array = ["2", "3", "4", "5", "6", "7", "8", "9", "10",
                              "J", "Q", "K", "A"];

      // Create a 52-card array. Each element is an object that contains
      // properties for: the card's integer value (for sorting purposes), card name, 
      // suit name, and display name. The display name combines the card's name
      // and suit in a single string for display to the user.
      for (var i:Number = 0; i < aSuits.length; i++) {
        // For each suit, add thirteen cards
        for (var j:Number = 0; j < 13; j++) {
          _aCards.push(new Card(j, aCardNames[j], aSuits[i]));
        }
      }
    }

    public function shuffle():Void {
      var aShuffled:Array = ArrayUtilities.randomize(_aCards);
      for(var i:Number = 0; i < aShuffled.length; i++) {
        _aCards[i] = aShuffled[i];
      }
    }
    
    public function push(oParameter:Object):Void {
      _aCards.push(oParameter);
    }
  
  }
  
    private class CardHand {

    private var _cdkDeck:CardDeck;
    private var _aHand:Array;
    
    public function get hand():Array {
      return _aHand;
    }
    
    public function get length():uint {
      return _aHand.length;
    }

    // When a new card player is created by way of its constructor, pass it
    // a reference to the card deck, and give it a unique player ID.
    public function CardHand(cdkDeck:CardDeck) {
      _aHand = new Array();
      _cdkDeck = cdkDeck;
    }
    
    public function getCardAt(nIndex:uint):Card {
      return _aHand[nIndex];
    }
    

    public function discard():Array {
      var aCards:Array = new Array();
      for(var i:Number = 0; i < arguments.length; i++) {
        aCards.push(_aHand[arguments[i]]);
        _cdkDeck.push(_aHand[arguments[i]]);
      }
      for(var i:Number = 0; i < arguments.length; i++) {
        _aHand.splice(arguments[i], 1);
      }
      return aCards;
    }

    public function draw(nDraw:Number = 1):Void {
    
      // Add the specified number of cards to the hand.
      for (var i:uint = 0; i < nDraw; i++) {
        _aHand.push(_cdkDeck.deck.shift());
      }

      orderHand();
    }

    public function orderHand():Void {
      _aHand.sort(sorter);
    }

    // Used by sort() in the orderHand() method to sort the cards by suit and rank.
    private function sorter(crdA:Card, crdB:Card):Number {
      if (crdA.suit > crdB.suit) {
        return 1;
      } else if (crdA.suit < crdB.suit) {
        return -1;
      } else {
        return (Number(crdA.value) > Number(crdB.value)) ? 1 : 0;
      }
    }
    
  }


Сама программа:
Код

package
{
    import flash.display.Sprite;
    import ascb.play.Cards;
        
    public class cardes extends Sprite
    {
        public function cardes()
        {
            var karty : Cards = new Cards();
            var hands : Array = karty.deal(4, 10);
            var i : uint;
            var j : uint;
            for (i = 0; i < hands.length; i++)
            {
                trace("hands " + i);
                for (j = 0; j < hands[i].length; j++)
                {
                    trace(hands[i].getCardAt(j));
                }
            }
        }
    }
}

PM MAIL   Вверх
Maksys
Дата 5.1.2011, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Future Splasher
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 15.6.2005
Где: Екатеринбург

Репутация: нет
Всего: 17



выложи все сюда потыкаемся


--------------------
 С уважением, BiMaWa™©.
user posted image
user posted image
PM MAIL ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.0556 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.