Приветствую Вас Гость | RSS

Flash. Обо всем по маленьку

Вторник, 23.12.2025, 06:43
Главная » Статьи » Уроки ActionScript

Урок 6-1. Класс Dictionary
Класс Dictionary представляет собой новый вид Object в ActionScript 3. Объекты Dictionary обладают специальной возможностью использовать ссылки на объект в качестве его ключей, или имен переменных. Обычные экземпляры Object (и другие экземпляры динамических классов) используют обычные имена переменных, которые существенным образом приравниваются к строкам (массивы также используют числа, хотя они могут приравниваться к строкам в плане того, каким образом они обрабатываются в качестве ключей). Словари могут использовать реальные ссылки на объекты.

// Only Dictionary instances can have

// object references as keys

var arr:Array = new Array();

arr[0] = "value";

var obj:Object = new Object();

obj["variable"] = "value";

var dict:Dictionary = new Dictionary();

dict[arr] = "value1";

dict[obj] = "value2";

Если вы попытаетесь использовать объекты в качестве ключей внутри обычных, обобщенных экземпляров Object, то использованные ключи фактически станут строковым представлением этих объектов, а не реальными объектами, как в случае с классом Dictionary.

Словари в большинстве случаев используются для хранения информации о других объектах, когда эти другие объекты не способны продвигать эту информацию самостоятельно. Например, если у вас есть набор экземпляров Point (где Point является изолированным классом, означающим, что дополнительные значения не могут быть связаны с экземплярами данного класса), и вам нужно значение имени привязать к каждой из этих точек, то все, что вы можете сделать, это использовать экземпляр Dictionary, чтобы поместить туда имена каждой точки с использованием экземпляра Point в качестве ключа.

// Use Dictionary for name association with inatances

// Assuming ptA - ptC are Point instances

var names:Dictionary = new Dictionary();

names[ptA] = "A";

names[ptB] = "B";

names[ptC] = "C";

// Point A properties

ptA.x; // x value

ptA.y; // y value

names[ptA]; // name ("A")

Поскольку экземпляры Point не имеют свойства name и потому, что они не динамичны (позволяя вам создавать свои собственные экземпляры на основе этих), экземпляр Dictionary под названием names используется здесь для хранения имен точек при помощи самих точек в качестве ключа к их соответствующему значению имени. Это будет невозможным с общими экземплярами Object, так как они могут брать в качестве ключей только имена переменных (строки или числа, но не экземпляры).
Категория: Уроки ActionScript | Добавил: anti_k (25.02.2010)
Просмотров: 680 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]