ActionScript ООП (объектно-ориентированное программирование)

На этом занятии мы рассмотрим три вопроса:

  1. Объекты и классы
  2. Свойства и методы
  3. Статические классы

Объекты и классы в ActionScript ООП

Объектно-ориентированное программирование, или ООП, широко распространенная программная парадигма, используемая сегодня большинством языков. В ООП программисты организуют код в виде объектов, которые похожи на концепции, применяемые в реальном мире, как, например, покупательская корзина. Поскольку ActionScript 3.0 – объектно-ориентированный программный язык, то понимание терминологии и концепций ActionScript ООП очень важно для дальнейшей работы с ним.

ООП создавался для того, чтобы имитировать ситуации, возникающие в реальном мире, поэтому было бы правильно пользоваться такими терминами, которые мы применяем в повседневном обиходе. Далее, в уроках ActionScript, чтобы лучше понять эту концепцию, мы будем сравнивать ActionScript ООП с проектированием и строительством нового дома.

Основной строительный блок в ООП – это класс (class). Класс описывает объект, но не является его конкретным экземпляром. И, прежде чем Вы начнете использовать объекты, Вы должны создать для них класс.

В случае со строительством, новый дом не может быть построен из воздуха. Прежде чем начнется стройка, архитекторы должны спроектировать дом. Для этого они создают серию чертежей и, возможно, даже, для нескольких из них различные модели дома. Вот эти чертежи и будут аналогией классов. Но, как в реальности невозможно жить в чертеже дома, так же  Вы не можете использовать класс в Вашей программе. Класс описывает объекты, которые Вы можете создавать в Вашей программе и затем управлять ими.

Объекты на сцене – это экземпляры классов. Прежде чем начать работать с ними, Вы должны создать класс, который опишет их во всех деталях, используя ActionScript переменные, типы данных actionscript и т.д. Поэтому, когда Вы создаете экземпляр класса, Вы создаете объект, т.е. реальную вещь, которую Вы можете использовать в своем приложении.

ActionScript ООП

Если Вы когда-нибудь помещали экземпляры movieclip или кнопки на сцену во Flash, то Вы использовали объекты. Конвертируя картинку в символ во Flash, Вы создаете класс. Когда Вы перетаскиваете символ на сцену, Вы создаете его экземпляр.

Класс кнопки уникальный в своем роде. Его экземпляры Вы можете создавать только на сцене. Movie Clip, динамический текст и другие компоненты – примеры классов, экземпляры которых могут быть созданы и на сцене, и с помощью кода. Существует еще несколько десятков классов, экземпляры которых создаются только с помощью кода.

В дополнение к уже заранее созданным классам в ActionScript ООП Вы можете создавать свои собственные – пользовательские. Как уже упоминалось выше, Вы создаете новый класс в тот момент, когда создаете новый символ. Покупательская корзина в бизнес-приложениии также может быть определена как пользовательский класс. К их созданию и исследованию мы вернемся в последующих уроках.

Классы в ActionScript ООП структурно организуются в пакеты (package). Каждый класс хранится в отдельном ActionScript-файле, пакет же – это просто папка, в которой находятся все связанные друг с другом классы.

Свойства и методы в ActionScript ООП

В реальном мире объекты обладают свойствами (property), которые их определяют. Например, у дома прямоугольное основание, определенное количество комнат, он расположен определенным образом относительно сторон света, у него свой цвет и большое количество других характеристик. В ActionScript ООП все эти характеристики называются свойствами. Также, как Вы описываете дом с помощью таких свойств, Вы можете описывать, например, movie clip, говоря о его форме, цвете, прозрачности, размерах и месте расположения на сцене (синтаксис ActionScript).

Вернемся к аналогии с домом. Дом, в котором Вы живете, как правило, расположен в жилом квартале, где находятся другие дома. Часть из них конструктивно отличается от Вашего, хотя многие из тех свойств, которыми они обладают, схожи со свойствами Вашего дома – прямоугольное основание, материал из которого построен, этажность и т.д. Однако, часть их свойств различается – цвет, кровля и пр. В этом смысле каждый дом уникален и чем-то отличается от соседнего. Ну, и, кроме того, у Вашего дома свой уникальный адрес.

Экземпляры объектов в ActionScript ООП также обладают сходными свойствами, хотя каждый из них по-своему уникален. Вы можете создать такое количество экземпляров movie clip на сцене, которое Вам необходимо для целей Вашего фильма. И у каждого из них будет та же самая базовая форма как и у остальных. Однако все они будут отличаться по своему местоположению на сцене – их x и y значения будут отличны. Также, Вы можете изменять их размеры, т.е. их scaleX и scaleY свойства.

В дополнение к определению свойств объектов Вы можете совершать какие-то действия с ними. Вы можете войти в Ваш дом и выйти из него, приготовить в нем ужин, спать, смотреть телевизор, работать за компьютером. Подобным же образом Вы можете добавлять и удалять товары в корзину класса, который Вы определили для Вашего интернет-магазина. Вы можете анимировать картинки в Вашем фильме. Действия, которые Вы можете к ним применять называются методами (method) или функциями (function).

В большинстве случаев экземпляры одного и того же объекта обладают одинаковыми методами. Хотя и возможно определить пользовательские методы для определенного экземпляра – в рамках данного курса мы на этом останавливаться не будем.

Дополнительная информация

Статические классы в ActionScript ООП

Прежде чем мы продолжим дальше важно понять, что существует специальный класс в ActionScript ООП, который называется статическим (static). Вы не сможете создать экземпляры на основе этого класса, т.к. это просто не имеет смысла. Вместо этого Вы сможете напрямую обращаться к их свойствам и методам. Яркий пример такого класса – Math. Он определяет математические константы, такие как, например, число пи, и набор методов, выполняющих определенные математические вычисления, такие как тригонометрические функции. Другой пример статического класса – Stage (сцена) – сцена, на которой расположены все объекты фильма, одна и Вы не можете создать еще одну сцену. Следующий пример – объект Mouse (мышь) – у Вас нет возможности использовать два курсора мыши и более, работая на большинстве компьютеров. Все вышесказанное относится и к клавиатуре (Keyboard).

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

ActionScript ООП (объектно-ориентированное программирование): 5 комментариев

  1. Здравствуйте, Валерий! В дополнительной информации к уроку Вы пишете: “…Вы не можете создать еще одну сцену…” Вероятно, это образное замечание. Если нет, поругайте меня, я начинающий, ищущий… Спасибо за Ваш труд!

  2. Вячеслав, хороший вопрос. Спасибо. Во Flash нельзя создать несколько объектов класса Stage. Такой объект уникален, т.е. единственный и создается автоматически Flash Player’ом. Поэтому, если Вы создадите экземпляр класса Stage, например, var myStage:Stage = new Stage(); и затем добавите его на сцену, то ничего не произойдет. Даже если Вы импортируете другой swf-файл в Ваш проект все равно объект Stage будет один. Для того, чтобы решить эту проблему используются классы Sprite или Movieclip. На их основе можно создавать неограниченное количество объектов, каждый из которых может быть “сценой” для манипуляций объектами, которые он содержит. Иногда, начинающие изучать Flash путают понятия Stage (класс в ActionScript) и Scene (эпизод, кадр, сцена). В среде разработки Flash Professional есть возможность создавать более чем одну сцену, используя панель Scene (Window -> Other Panels -> Scene). Это удобный инструмент для разбивки фильма на эпизоды (на кинематографическом языке – кадры). Надеюсь, что понятно объяснил. Успехов!

  3. Классный сайт, в сжатом и при беглом чтении все становится понятно, спасибо Валерий.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *