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

Этот код определяет метод getNamespace ( ), который возвращает пространство имен fruit:

public function getNamespace ( ):Namespace { return fruit:

}

Пространство имен может возвращаться из метода для того, чтобы предоставить вызывающему коду привилегированный доступ к закрытым переменным и методам. Полный пример, демонстрирующий возврат пространства имен из метода в качестве части системы управления доступом на основе разрешений, можно найти далее, в подразд. «Пример: управление доступом на основании разрешений» разд. «Практические примеры использования пространств имен».

Пример использования значения пространства имен

Теперь, когда мы познакомились с тем, как работают значения пространств имен в теории, вернемся к нашему предыдущему примеру детской игры и посмотрим, как значения пространств имен могут быть использованы в реальном приложении. Напомним, что указанная игра представляет собой упражнение на чтение, в котором игрок пытается распознать выбранный случайным образом цвет или фрукт.

Первая версия кода игры (см. листинг 17.1) демонстрировала единственный, чрезвычайно упрощенный фрагмент игры. В этой измененной версии мы сделаем игру полностью функциональной, подробно рассмотрев возможность применения пространств имен для управления несколькими наборами данных.

Бегло просмотрите код в листинге 17.3, чтобы получить общее представление о программе. В данном примере пространства имен используются только в классах I terns и Kids Game, поэтому вы должны сосредоточить свое внимание на этих классах. Информацию о методиках, применяемых для создания пользовательского интерфейса в этом примере, можно найти в части П. Подробный анализ кода представлен сразу после листинга.

Листинг 17.3. Детская игра: пример использования значения пространства имен

// Файл fruit. as package {

public namespace fruit = «http://www. example. com/games/kidsgame/fruit»;

}

// Файл color. as package {

public namespace color = «http://www. example. com/games/kidsgame/color»;

}

// Файл Items. as package {

‘ // Простой класс для хранения данных, содержащий объекты Item для игры, public class Items { // Фрукты

fruit var orange:Item = new Item(«Orange», «fruit-orange. jpg», 1); fruit var apple:Item = new ItemC’Apple», «fruit-apple. jpg», 2);

// Цвета

color-var orange-.Item = new Item( «Orange», «color-orange. jpg», 3); color var purple:Item = new ItemCPurple», «color-purple. jpg», 4);

// Массивы, хранящие полные наборы элементов (то есть все фрукты // или все цвета)

fruit var itemSet:Array = [fruit::orange, fruit::apple]; color var itemSet:Array = [color::orange, color::purple];

// Массив пространств имен, представляющих

// типы наборов элементов в игре

private var itemTypes:Array = [color, fruit];

// Возвращает все элементы-фрукты, используемые в игре fruit function getltems ( ):Array { return fruit::itemSet. slice(0);

}

// Возвращает все элементы-цвета, используемые в игре color function getltems ( ):Array {

return color::itemSet. siice(O);

}

// Возвращает список доступных типов элементов, используемых в игре public function getltemTypes ( ):Аггау { return i temTypes. s1i се(0);

}

}

// Файл KidsGame. as package {

import flash. display.*;

import flash. events.*;

import flash. utils.*;

// Основной класс приложения для детской игры «Учусь читать», которое // демонстрирует основы использования пространств имен в языке ActionScript. // Игроку показывается картинка с цветом или фруктом и предлагается выбрать // название этого цвета или фрукта из списка вариантов, public class KidsGame extends Sprite { private var gameltems:Items; // Список всех элементов, используемых

// в игре

private var thisQuestionltem:Item; // Элемент для каждого вопроса private var questionScreen:QuestionScreen; // Пользовательский интерфейс

// Конструктор

public function KidsGame( ) { // Получаем элементы, используемые в игре (фрукты и цвета, // названия которых должен указать игрок) gameltems = new Items( ); // Отображаем первый вопрос newQuestion( );

}

// Создаем и отображаем новый случайный вопрос public function newQuestion ( ):void {

// Получаем полный список типов элементов (массив пространств имен)

var itemTypes:Array = gameltems. getItemTypes( );

// Случайным образом выбираем тип элемента (одно из пространств имен,

// на которые ссылается переменная itemTypes)

var randomltemType:Namespace = itemTypes[Math. floor(

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

// Получаем элементы набора, выбранного случайным образом var items:Array = gameltems. randomltemType: -.getItems( );

// Случайным образом выбираем элемент для данного вопроса // из набора элементов

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

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

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

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

Полезные ссылки
Случайные записи
  • 14.03.2011">Руководство по actionscript. часть 3, стр. 070
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 106
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 094
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 127
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.76
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 091
  • 06.07.2011">Новая серия ультрапортативных ноутбуков Acer
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.58
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.47
  • 17.03.2011">Руководство по actionscript. часть 2, стр. 156
  • 17.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.117
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.46
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 019
  • 30.05.2013">В течение недели LG продемонстрирует гибкую панель OLED в 5 дюймов
  • 12.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.106
Опрос

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

View Results

Loading ... Loading ...