Об’єктна модель ActionScript

Під об'єктною моделлю розуміється сукупність типів об'єктів, які можна використовувати у сценарії, і відносини підпорядкованості з-поміж них.

Нагадаємо, що в мовах програмування об'єкт описується набором атрибутів (властивостей) та переліком методів (процедур), які можуть бути застосовані до цього об'єкта. Для кожного класу об'єктів визначено свій набір атрибутів та методів. Наприклад, для об'єкта «Кнопка» як атрибути можуть використовуватися мітка, геометричні розміри, координати, а як метод — реакція на натискання кнопки. Конкретний об'єкт – це екземпляр відповідного класу. Два екземпляри одного й того ж класу можуть відрізнятися один від одного значеннями атрибутів.

Для опису дій над об'єктами, а також для вказівки підпорядкованості об'єкта зазвичай застосовується так звана точкова нотація. Наприклад, щоб вказати, що до кнопки Button_l слід застосувати метод onPress(), використовується конструкція

Якщо потрібно вказати на приналежність кнопки Button_1 кліпу Сliр_2, то запис може виглядати так:

Documen t. Widow. Form_1. Input_1.

При цьому якщо звернення до кнопки виконується з поточного документа, що відображається в тому ж вікні броузера, то перші два рівні ієрархії явно не вказуються, а маються на увазі. Відповідно, для звернення до кнопки може бути використана конструкція

Аналогічні правила діють і в ActionScript. Наприклад, щоб звернутися до кліпу, безпосередньо вставленого в кадр-основного фільму, можна записати: _root. Clip_l.

Ключове слово _ root використовується як ім'я основного фільму і в цьому випадку може бути опущене. Якщо ж кліп є частиною іншого, «батьківського», кліпу, то для вказівки його підпорядкованості можевикористовувати ключове слово _parent, наприклад:

Тепер повернемося до об'єктної моделі ActionScript.

Як було сказано вище, кореневим об'єктом, що неявно присутнім у будь-якому сценарії, є Flash-плеєр. На наступному рівні розташовуються чотири класи об'єктів (рис. 11.2):

  • Movie (Об'єкти фільму);
  • Core (Об'єкти ядра);
  • Client/Server (Об'єкти клієнт-серверного середовища виконання);
  • Authoring (Об'єкти середовища розробки).

Мал. 11.2. Об'єктна модель ActionScript

Об'єкти класу Movie дозволяють уявити у сценарії взаємовідносини між елементами фільму (тобто структуру фільму), і навіть управляти параметрами і поведінкою елементів фільму. До цього класу належать, зокрема, такі об'єкти:

  • Button (Кнопка) - об'єкт, що представляє у сценарії кнопку; для такого об'єкта може динамічно змінюватись, наприклад, порядок встановлення фокусу введення;
  • MovieClip (Кліп) - об'єкт, що представляє у сценарії кліп; йому може динамічно змінюватися, наприклад, кількість вкладених кліпів;
  • Mouse (Миша) - об'єкт, що представляє в сценарії покажчик миші; він дозволяє керувати видимістю та стилем покажчика;
  • Key (Клавіатура) - об'єкт, що представляє у сценарії клавіші, що використовуються для керування фільмом;
  • Color (Колір) - об'єкт, що представляє в сценарії палітру кліпу і, відповідно, дозволяє змінювати цю палітру;
  • Sound (Звук) - об'єкт, що представляє в сценарії звуковий символ, пов'язаний з кнопкою або кліпом;
  • Stage (Стіл) – об'єкт, призначений для керування деякими параметрами столу (зокрема, масштабом зображення);
  • TextField (Текстове поле) - об'єкт,динамічний текстове поле або поле редагування, що представляє в сценарії;
  • TextFormat (Формат тексту) – об'єкт, що дозволяє керувати зі сценарію параметрами шрифту текстового поля.

Між об'єктами класів Button і MovieClip в ActionScript дуже складно визначити відносини підпорядкованості: вони можуть змінюватися від одного фільму до іншого і навіть від сцени до іншої. Наприклад, i одній сцені кнопка може входити до складу кліпу, а в іншій — кліг може використовуватися для «пожвавлення» зображення кнопки, решта об'єктів класу Movie (за винятком, мабуть, TextField) можна вважати підлеглими по відношенню до об'єктів Button і MovieClip, оскільки можуть входити до їхнього складу, але не навпаки.

Зверніть увагу, що ActionScript ні для кадру, ні для сцени фільму не передбачено відповідний клас об'єктів. Справа в тому, що ActionScript не дозволяє змінювати жодні властивості цих елементів фільму. За допомогою сценарію ви можете лише звернутися до кадру (сцени) за його ім'ям або номером, а також перевірити, завантажений він чи ні. Як правило, кадр або сцена використовуються як параметри дій (Actions) і методів. Наприклад, щоб перейти до 20 кадру, можна записати дію gotoAndPlay(20).

Об'єкти класу Core призначені для роботи з об'єктами фільму та мають допоміжну роль. Їх слід використовувати у тому випадку, якщо стандартних методів виявляється недостатньо для управління (зміни властивостей) об'єктами фільму. До класу Core входять, зокрема, такі об'єкти:

  • Math (Математика) - об'єкт, що використовується в сценарії для роботи з числовими величинами; на відміну від інших класів мови ActionScript, об'єкт Math є і єдиним екземпляром цього класу; тобто методицього класу можуть застосовуватися безпосередньо до об'єкта Math; наприклад, щоб отримати значення косинуса за допомогою методу cos можна записати: Math.cos(3)\
  • Number (Число) - об'єкт, передбачений виконання деяких спеціальних операцій із числовими величинами; наприклад, з його допомогою можна визначити найбільше в деякому діапазоні;
  • String (Рядок) — об'єкт, який використовується у сценарії для роботи з рядками;
  • Date (Дата) – об'єкт, який використовується у сценарії для роботи з календарними датами та часом.

Об'єкти класу Client/Server призначені для роботи з документами (Web-сторінками), написаними мовою XML. Деякі з цих об'єктів забезпечують завантаження, обробку та пересилання XML-документів, інші обслуговують з'єднання через сокети. Таким чином, ActionScript реалізує підтримку серверної обробки XML-документів, що містять Flash-фільми.

Об'єкт класу Authoring призначений керувати параметрами середовища розробки Flash-фильмов. Для нього передбачені два основні методи: install та uninstall.