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

На русском языке она будет звучать так: Обращение к несуществующему свойству orange.

Компилятор не может найти переменную или метод (то есть «свойство») по имени orange, поскольку в области видимости метода-конструктора Items не существует переменной или метода с простым идентификатором orange. Переменные fruit: : orange и color: : orange уточняются с помощью пространств имен, поэтому они оказываются недоступны при попытке обратиться к ним с применением неуточненного идентификатора. И все-таки далее, в разд. «Открытые пространства имен и директива use namespace», мы познакомимся с упрощенным способом обращения к уточненным идентификаторам без использования уточняющего пространства имен.

Очевидно, что в листинге 17.1 не показана полнофункциональная игра, но этот код призван дать вам представление о базовом синтаксисе и использовании пространств имен. Мы завершим создание нашей игры далее в этой главе.

На этом начальном этапе разработки нашей игры вы могли бы поинтересоваться, почему вместо использования пространств имен мы не можем просто определить переменные с длинными именами, например orangeFruit и orangeColor. Или почему нельзя разделить оба вида oranges, присвоив их двум отдельным массивам, как показано в следующем коде:

var fruitList:Array = ["orange", "apple", "banana"]; var colorList:Array = ["orange", "red", "blue"];

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

Доступность пространств имен

Как и в случае с определениями переменных и методов, определения пространств имен могут быть изменены с помощью модификаторов управления доступом publ i с, internal, protected и private. Местоположение определения пространства имен в сочетании с модификатором управления доступом этого определения указывают, где может быть использован результирующий идентификатор пространства имен.

Вот несколько основных правил, которые помогут решить, где разместить ваши пространства имен.

? Если пространство имен должно быть доступно в любом месте программы или в группе классов, определяйте его на уровне пакета.

? Если вам требуется пространство имен, которое задает видимость переменных и методов внутри одного класса, определяйте его на уровне класса.

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

Рассмотрим несколько примеров, начав с пространств имен, задаваемых на уровне пакета.

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

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

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

Полезные ссылки
Случайные записи
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 100
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.42
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 077
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 101
  • 13.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.99
  • 10.03.2011">Руководство по actionscript. часть 4, стр. 030
  • 06.03.2011">Руководство по actionscript. часть 4, стр. 146
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 066
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 093
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 059
  • 21.06.2011">Объективные стороны рестайлинга сайтов.
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 025
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 116
  • 27.07.2011">Флористы – художники от мира цветов
  • 07.08.2012">Google улучшила PageSpeed, чтобы люди не тратили драгоценные секунды
Опрос

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

View Results

Loading ... Loading ...