PickPickPick Суббота, 23-Ноября-2024, 00:46:30
Приветствую Вас Неизвестный | RSS
Гильдия Аномалия
Главная | Каталог статей | Регистрация | Вход
Меню сайта

Категории каталога
Flash! [28]

Мини-чат

Главная » Статьи » Flash! » Flash!

Flash Прототипы

Во Флэш существует ряд встроенных объектов, таких как MovieClip, String, Array, Color.
Каждый из них имеет свои методы и свойства исчерпывающим образом описанные в руководстве, прилагаемом к программе. Но разве вам никогда не хотелось поиграть с ними в Доктора Франкенштейна? Например, сделать так, чтобы любой мувик получил возможность программного отражения по горизонтали и вертикали, ну что-то типа ball.flipX(). Другими словами, чтобы любой мувик автоматически наследовал ваш flipX() метод.

На самом деле это сделать не просто. А очень просто! Достаточно знать правильный синтаксис, и вы сможете добавлять собственные методы к прототипам встроенных объектов. Например, вот код добавляющий метод flipX() к классу MovieClip:

MovieClip.prototype.flipX = function () {
    this._xscale = -this._xscale;
};

Ухххуу!! Теперь вы можете флипнуть (отразить) любой мувик простым вызовом ВАШЕГО метода:

mc.flipX();

А вот и метод flipY() для сравнения:

MovieClip.prototype.flipY = function () {
    this._yscale = -this._yscale;
};

В общем виде добавление метода к встроенному объекту происходит так:

BuiltinObject.prototype.method = function () {
    // ну а здесь пошел наш код
};

 

Перезаписываем встроенные методы.

Вы можете не только добавлять новые методы к встроенным объектам, но и перезаписывать уже встроенные методы.

Для перезаписи (переназначения) метода используется тот же синтаксис что и при добавлении нового. Например, метод Array.push() выполняется очень-очень медленно. А мы возьмем и заменим его следующим кодом:

Array.prototype.push = function (data) {
    this[this.length] = data;
};

Вышеупомянутый код используется для добавления data в конец текущего массива. Заметьте, что ключевое слово this используется для обращения к текущему объекту из метода.

Расширяем функционал статических встроенных объектов.

Расширение некоторых встроенных объектов отличается от вышеописанного. «Статичные» объекты (Math, Key, Mouse) не имеют прототипированных свойств, поэтому вы должны добавлять методы непосредственно к объекту. Например, вот как вы должны записать функцию Math.distance() для нахождения дистанции между двумя точками:

Math.distance = function (x1, y1, x2, y2) {
    var dx = x2 - x1;
    var dy = y2 - y1;
    return Math.sqrt (dx*dx + dy*dy);
};

Вот общий синтаксис:

StaticObject.method = function () {
    // code
};

Не используйте следующий синтаксис:

StaticObject.__proto__.method = function ()

Использование _proto_ в этом контексте добавляет метод к Object.prototype.

Категория: Flash! | Добавил: Klarg (17-Июля-2008)
Просмотров: 498
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Друзья сайта
РЕБЯТ ВСЕ КТОИГРАЕТ В Cs1.6 у меня есть свой сервак он работает 7\24 адрес 78.107.35.19:27017
,
www.top.RuGaming.net - Топ сайтов
18.221.59.121 Ваш адрес
 
 
У вас есть реклама? хотите заработывать на своем сайте ? вам сюда ! < Интеллектуально-ролевая онлайн игра Золотой Клон - игра нового поколения!

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Copyright MyCorp © 2024Хостинг от uCoz