Информационно развлекательный портал Вторник, 10.03.2026, 15:16
Главная | Регистрация | Вход Приветствую Вас Гость | RSS


Меню сайта

Заработок на рекламе



Категории каталога
Эффекты [5]
Первые шаги [9]
Звук [1]
3D [1]
Математика [1]
Flash 5 (серия статей) [10]
Программирование [4]
Мультипликация [0]
Игры [25]
Анимация [2]
Общая информация [13]

Мини-чат

Заработок на рекламе



Наш опрос
Оценка сайта
Всего ответов: 18

Главная » Статьи » 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.

Категория: Первые шаги | Добавил: vitos (18.03.2008)
Просмотров: 329 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Заработок на рекламе



RussianFeme.Com - знакомства с иностранцами

Популярные Статьи
Борьба клонов
Маленькие советы (Часть 2.)
Меняем точку регистрации объек...
Работа со звуком в ActionScrip...
3D в Flash
Flash. Кривые Безье - основа о...
Flash 5. Шаг четвертый: Пошаго...
Flash 5. Шаг девятый: добавляе...
Flash 5. Шаг первый: основные ...
Flash :: Знакомьтесь: прототип...
Маленькие советы (Часть 1.)
Введение во Flash
Динамические SQL-запросы Oracl...
Создаем тень от текста.
Метод Shape Tweening
Метод Motion Tweening
Создание простой сценки во Fla...
Подключение Flash
Интерфейс Flash. Создание кноп...
Используем шаблоны

Поиск

Друзья сайта
Мопед HOnda Dio AF34

Заработок на рекламе



Статистика

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

Copyright Player( ICQ 70-886-366) © 2026