Книги-online
ООП во Flash 5: Заключение
<<
ООП во Flash 5
>>
Заключение
Скачайте объектно-ориентированную систему
Здесь мы подведём итог по использованию объектно-ориентированной системы в ActionScript, не рассматривая подробно то, как это всё работает. Вообще всё просто. Сначала начнём с рекомендаций по использованию, а потом разберёмся с тем, что обязательно, а что опционально. Вот структура типичного класса:
Пример использования
// имя класса и конструктор
ClassName = function( arg0, arg1, arg3 )
{
this.super( arg1, arg2 );
this.instanceProp0 = arg0;
}
// установим свойства класса (это повлияет на прототип)
ClassName.prototype.classProperties = function()
{
this.prop1 = "hello";
this.prop2 = "world";
}
// установим методы класса (это повлияет на прототип класса)
ClassName.prototype.classMethods = function()
{
this.method1 = function(){ ... }
this.method2 = function(){ ... }
}
// установим наследование
Object.extends( SuperClassName, ClassName );
Требования
Первая строка любого конструктора должна быть this.super( ... ). Любые аргументы, которые бы вы хотели задать конструкторам, должны быть переданы вверх сверхметоду.
Процесс назначения наследованию дополнителя должен происходить в самом конце, если только вы не используете classMethods, а просто устанавливаете прототипы вручную.
Есть много преимуществ в определении прототипа с помощью classProperties и classMethods, хотя это и необязательно.
Опции
Особые методы и свойства (расширения ActionScript, инструменты отладки) могут быть помещены в Object.customMethods.prototype.xxx В этом случае они автоматически станут доступными для всех классов и экземпляров (путаницы не будет).
Вы можете отказаться от использования classProperties и classMethods при установлении прототипов. Но тогда свойства прототипов не будут иметь доступа к методам прототипов в процессе назначения и, таким образом, свойства станут "наезжать" на экземпляры. Если вас это не смущает, то можете поступать, как считаете нужным (советую перечитать раздел о this!).
Вы можете передавать по цепи столько аргументов, сколько пожелаете. Но если их число превышает восемь, вам придётся изменить сверхметод, добавляя дополнительные аргументы.
Лучше, если ключевое слово super будет выглядеть, как _super, а extends, как _extends. В последующих версиях Flash эти слова могут стать резервными. Наверное, скоро это изменится, хотя...