Процесс создания классов для использования в пользовательском проекте кажется довольно сложным. Тем не менее, самой сложной частью в создании класса является разработка методов, свойств и событий класса.
Стратегия разработки класса
Тема проектирования с ориентацией на объект довольно сложна. Академическим изучением этой дисциплины и ее профессиональным применением можно заниматься всю жизнь. Тем не менее, здесь приводится несколько рекомендаций и подходов, которые помогут сделать первые шаги в этом направлении.
-
Продумайте роль, которую играют экземпляры этого класса в приложении. Обычно объекты выполняют одну из следующих трех функций.
-
Объект значений: эти объекты в основном являются контейнерами данных. Вероятнее всего, они имеют несколько свойств и небольшое число методов (а иногда используются без методов). Как правило, они являются закодированным представлением четко заданных элементов. Например, приложение музыкального проигрывателя может включать класс Song (песня), представляющий одну реальную песню, а также класс Playlist (список воспроизведения), представляющий абстрактную группу песен.
-
Экранные объекты: эти объекты реально отображаются на экране. В качестве примеров можно назвать выпадающие списки, индикаторные панели состояния, графические элементы, такие как различные существа в видеоиграх, и т. п.
-
Структурные объекты приложения: эти объекты выполняют широкие функции, поддерживая обработку данных и логические операции, выполняемые приложением. Например, можно создать объект для выполнения определенных вычислений при имитации биологической среды. Можно создать один объект, отвечающий за синхронизацию значений элемента управления набором номера и показаний громкости в приложении музыкального проигрывателя. Другой объект может управлять правилами в видеоигре. Или можно создать класс для загрузки сохраненного рисунка в приложение рисования.
-
Определите специальные функции для данного класса. Различные функциональные типы часто становятся методами класса.
-
Если класс должен использоваться как объект значений, решите, какие данные будут содержать его экземпляры. Эти элементы являются хорошими кандидатами в свойства.
-
Поскольку класс разрабатывается специально для пользовательского проекта, очень важно снабдить его теми функциями, которые необходимы для конкретного приложения. Попытайтесь дать ответы на следующие вопросы.
-
Какие части информации приложение сохраняет, отслеживает и обрабатывает? Ответ на этот вопрос поможет определить все необходимые объекты значений и свойства.
-
Какие наборы действий выполняет приложение? Например, что происходит при первой загрузке приложения, при нажатии определенной кнопки, по завершении воспроизведения фильма и так далее? Эти действия отлично подходят на роль методов. Они также могут быть свойствами, если включают изменение отдельных значений.
-
Какая информация необходима для выполнения любого из указанных действий? Эти порции информации становятся параметрами метода.
-
По мере выполнения приложения что будет изменяться в классе, о чем должна будет передаваться информация в другие компоненты приложения? Эти элементы являются хорошими кандидатами в события.
-
Существует ли объект, аналогичный объекту, который необходимо исключить из-за недостатка функциональных возможностей, которые необходимо добавить? Рассмотрите возможность создания подклассов. (
Подкласс
— это класс, который создается на основе функций существующего класса без определения всех собственных функций.) Например, чтобы создать класс, представляющий визуальный объект на экране, используйте свойства существующего объекта отображения в качестве основы класса. В этом случае объект отображения (такой как MovieClip или Sprite) будет
базовым классом
, а созданный класс будет расширением этого класса.
Написание кода для класса
После представления структуры класса или по крайней мере планирования информации, хранимой в этом классе, и действий, выполняемых этим классом, фактический синтаксис написания этого класса достаточно понятен.
Ниже перечислены основные шаги создания собственного класса ActionScript.
-
Откройте новый текстовый документ в программе текстового редактора ActionScript.
-
Введите инструкцию
class
для задания имени класса. Чтобы добавить оператор
class
, введите выражение
public class
и имя класса. Добавьте открывающиеся и закрывающиеся фигурные скобки, в которых будет указываться содержимое класса (определения методов и свойств). Например:
public class MyClass
{
}
Слово
public
означает, что этот класс доступен для любого другого кода. Другие возможности описаны в разделе
Атрибуты пространства имен для управления доступом
.
-
Введите оператор
package
, чтобы обозначить имя пакета, содержащего класс. Используется следующий синтаксис: слово
package
, после которого указываются имя пакета, открывающиеся и закрывающиеся фигурные скобки, в которых содержится блок оператора
class
). Например, измените код, содержащийся в предыдущем шаге, на следующий:
package mypackage
{
public class MyClass
{
}
}
-
Определите каждое свойство в классе с помощью оператора
var
в определении класса. Синтаксис совпадает с синтаксисом, используемым для определения любой переменной (с добавлением модификатора
public
). Например, добавление следующих строк между открывающейся и закрывающейся фигурными скобками определения класса приведет к созданию свойств с именами
textProperty
,
numericProperty
и
dateProperty
.
public var textProperty:String = "some default value";
public var numericProperty:Number = 17;
public var dateProperty:Date;
-
Определите каждый метод в классе с помощью синтаксиса, который использовался для задания функции. Например:
-
Для создания метода
myMethod()
введите:
public function myMethod(param1:String, param2:Number):void
{
// do something with parameters
}
-
Для создания конструктора (специального метода, который является частью процесса создания экземпляра класса) создайте метод с именем, которое в точности совпадает с именем класса:
public function MyClass()
{
// do stuff to set initial values for properties
// and otherwise set up the object
textVariable = "Hello there!";
dateVariable = new Date(2001, 5, 11);
}
Если конструктор метода не включен в класс, компилятор автоматически создает пустой конструктор в классе. (Другими словами, конструктор без параметров и операторов.)
Существует несколько дополнительных элементов класса, которые можно определить. Эти элементы являются более сложными.
-
Средства доступа
— это специальные узлы связи между методом и свойством. Когда записывается код для определения класса, средство доступа записывается как метод. При определении свойства можно выполнять несколько действий (а не только чтение и назначение значения). Тем не менее, при создании экземпляра класса средство доступа рассматривается как свойство: его имя используется для чтения и задания значения.
-
События в ActionScript не задаются с помощью специального синтаксиса. Вместо этого события в классе определяются с использованием функций класса EventDispatcher.
|
|
|