Руководство по actionscript. часть 3, стр. 005

Переменная gameltems класса KidsGame позволяет ему обращаться к игровым данным посредством объекта класса Items. При этом метод newQuestion ( ) класса KidsGame генерирует новый вопрос на основании данных, хранящихся в переменной gameltems. Метод newQuestion ( ) включает основную часть кода, связанного с использованием пространств имен. Именно эта часть интересует нас больше всего, поэтому рассмотрим данный код детально.

Напомним, что каждый вопрос отображает элемент одного из предопределенных наборов элементов, хранящихся в классе Items (fruit: ritemSet или color: ritemSet). Соответственно первая задача, которая стоит перед методом newQuestion ( ), — случайным образом выбрать набор элементов для генерируемого вопроса. Сначала мы получаем весь массив возможных наборов элементов (то есть пространств имен) из класса Items, используя метод gameltems. getltemTypes ( ):

var itemTypes:Array = gameItems. get ItemTypes( );

Затем мы случайным образом выбираем пространство имен из результирующего массива. Для удобства мы присваиваем выбранное пространство имен локальной переменной randomltemType.

var randomltemType:Namespace = itemTypes[Math. floor(

Math. random( )*itemTypes.1ength)];

Обратите внимание, что типом данных переменной randomltemType является тип Namespace, поскольку эта переменная ссылается на значение пространства имен. Как только будет выбран набор элементов (пространство имен) для вопроса, мы должны получить список существующих элементов из этого набора. Чтобы получить соответствующий массив элементов (либо фруктов, либо цветов), мы вызываем метод класса Items, который соответствует нашему выбранному пространству имен, — либо метод fruit: : getltems ( ), либо метод color: : get I terns ( ). Однако вместо того, чтобы обращаться к желаемому методу напрямую, мы динамически генерируем уточненный идентификатор метода, используя переменную randomltemType для определения пространства имен, как показано в следующем коде:

gameltems. randomltemType::get Items( )

Массив, возвращаемый методом, присваивается локальной переменной items: var items:Array = gameltems. randomltemType::get Items( ):

* •»

В предыдущем вызове метода обратите внимание, что поведение программы определяется контекстом программы. Эту особенность можно рассматривать как разновидность полиморфизма, которая основывается не на наследовании классов, а на произвольных группах методов и переменных, определяемых пространствами имен.

Теперь, когда у нас на руках есть массив элементов, мы можем продолжить текущую работу, которая заключается в отображении вопроса на экране. Сначала

мы случайным образом выбираем элемент для отображения из массива элементов:

thisQuestionltem = items[Math. floor(Math. random( )*iterns. length)]:

Затем мы размещаем изображение и варианты ответов для выбранного элемента на экране, используя класс QuestionScreen:

// Удаляем предыдущий вопрос, если он существует if (questionScreen!= null) { removeChild(questionScreen);

}

// Отображаем новый вопрос

questionScreen = new QuestionScreen(this, items. thisQuestionltem): addChild(questionScreen);

Приведем код метода newQuestion ( ) еще раз. Обратите особое внимание на использование значений пространств имен в этом коде, поскольку мы не будем больше возвращаться к нему.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 13.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.105
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 067
  • 22.07.2010">Веб-дизайн – продуманное начало
  • 13.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.86
  • 21.07.2011">Дизайн современных часов
  • 03.08.2010">Сравнение параметров дизайна
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 057
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.106
  • 20.02.2010">Как делать деньги в твиттере?
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 001
  • 17.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.4
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.13
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.51
  • 01.01.2010">14 бесплатных шрифтов в стиле Web 2.0
  • 06.03.2011">Руководство по actionscript. часть 4, стр. 145
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...