Macromedia Flash 5. Объектно - ориентированное программирование




Экземпляры и краткое описание оператора "New" - часть 2


inst1 = << контейнер (объект) с двумя свойствами, x:5 и y:7 >>

Следующее, что нужно сделать - дать контейнеру имя. В нашем примере это "inst1". Вот и всё. Представьте людей, ожидающих коробки в конце конвейера, чтобы написать на них свои имена и затем забрать домой. Теперь это ИХ коробки, тогда как раньше это были ПРОСТО коробки на конвейере. Вот для чего нужна левая часть уравнения в сроке #6 - дать имя объекту. Это происходит, когда класс закончил свою работу. Теперь можете проверить конечный объект на наличие свойств x и y. Они должны иметь значения 5 и 7.

Единственное, что способно определить класс в ActionScript, это функция (по крайней мере в 5-й версии). Это может быть ваша собственная функция или встроенная, такая как Color или Array. Только классы, встроенные или созданные, могут создавать экземпляры. Вскоре мы разделим функции на два типа: классы (classes) и методы (methods). Тогда во избежание путаницы можно будет перестать пользоваться словом "функция".

  Просто как Flash

Скорее всего вы уже знакомы со словом "экземпляр" (instance) по работе с Macromedia Flash. Вы создаёте экземпляры символов, просто "перетаскивая" их из библиотеки на сцену. Это то же самое, что и создание экземпляра из класса, абсолютно то же самое. "Вытаскивая" символ на сцену, вы тем самым создаёте "новый" объект. Таким образом создаётся пустой контейнер (если это мувиклип, то пустой мувиклип). Потом этот контейнер передается шаблону класса и "проходит через него", получая по дороге различные свойства (как на конвейере). Разумеется, класс это описание символа, которое вы находите в библиотеке, а свойства - графические элементы в символе (то, что кладется в коробку на конвейере). Должно быть, вы уже поняли, почему очень удобно пользоваться шаблонами (template) для создания объектов во Flash'е. По тем же самым причинам удобно пользоваться шаблонами и в ActionScript.

Возможно, вам кажется, что не всякий класс получает "безымянный" контейнер. Это отчасти верно, например:




Содержание  Назад  Вперед