Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #71, ОКТЯБРЬ 2006 г.

магические движения

MARKO BELICH

Спецвыпуск: Хакер, номер #071, стр. 071-016-6


ЛИСТИНГ

MovieClip.prototype.getFrame = function () {

return (this._currentframe);

}

MovieClip.prototype.setFrame = function (fr) {

this.gotoAndStop(Math.round(fr));

}

with (MovieClip.prototype) {

addProperty ("_fr", getFrame, setFrame);

}

Здесь три функции. Первая и вторая называются «получатель» и «установщик». Их задача - применить уже существующие методы, чтобы поменять наш movieClip. Последняя функция инициализирует новый атрибут всем movieClip через их прототип. Теперь можно вместо mclip.gotoAndStop(frame) написать просто:

ЛИСТИНГ

mclip._fr=frame;

У нас теперь есть новый атрибут, и мы можем его анимировать tween-менеджером:

ЛИСТИНГ

mclip.tweenPropertyTo("easeOutQuad","_fr",50,120);

Эта строка анимирует mclip с его текущего кадра до 50-го, используя прототип easeOutQuad длиной в 120 кадров.

Обрати внимание, что некоторые tween-прототипы (например, easeOutElastic и easeOutback) не могут работать с предельными значениями кадров. Значения, которые эти функции возвращают, выходят за рамки, в которых работают остальные tween. Если у нашего клипа есть 50 кадров, и мы в качестве финального значения используем 50 и функцию easeOutElastic, tween-менеджер попробует подвинуть клип на кадры за 50-ым. А поскольку их нет, это не будет отображаться.

[еще несколько полезных функций,]

которые мы можем использовать вместе с нашим tween-менеджером. Опять нам поможет Роберт Пеннер с собранием функций для контролирования цвета movieClip. Поменять цвет movieClip — не настолько простой процесс, но эти функции сделают это легко. С помощью функций можно менять цвет в hex, инвертировать цвета клипов, контролировать яркость и т.п. Качаешь их тут: www.robertpenner.com/tools/color_toolkit.zip. Включаешь в проект (уже присутствуют в tweenfull.fla примере) и получаешь новые атрибуты, которые можно использовать в tween-менеджере. Некоторые из этих атрибутов: _brightness, _contrast, _rgb и другие.

Сделаем с помощью этих функций tween цвета. Для этого нужна еще одна функция, которая подготовит movieClip для tween:

ЛИСТИНГ

MovieClip.prototype.tweenHex = function (tweenType, startHex, endHex, frames, callBack) {

var c = this;

c.setRGBStr(startHex);

var stR = parseInt(startHex.substr(0,2), 16);

var stG = parseInt(startHex.substr(2,2), 16);

var stB = parseInt(startHex.substr(4,2), 16);

var enR = parseInt(endHex.substr(0,2), 16);

var enG = parseInt(endHex.substr(2,2), 16);

var enB = parseInt(endHex.substr(4,2), 16);

var rFunc = function () {

c.setRGBStr(endHex);

callBack();

}

c.tweenPropertyTo(tweenType, ["_red","_green","_blue"],[enR,enG,enB], frames, rFunc);

}

А потом запускаешь функцию:

ЛИСТИНГ

mclip.tweenHex("easeOutBounce","000000","FF3366",250);

РОДИЛСЯ В БЕЛГРАДЕ, СЕРБИЯ. ФЛЕШОМ ПРОФЕССИОНАЛЬНО ЗАНИМАЕТСЯ С 1998 ГОДА. РАБОТАЛ В НЕСКОЛЬКИХ ДИЗАЙН-СТУДИЯХ В БЕЛГРАДЕ. В 2002 ГОДУ ПЕРЕЕХАЛ В МОСКВУ. РАБОТАЛ В СТУДИИ MEMPHIS (WWW.MEMPHIS.RU), А СЕЙЧАС РАБОТАЕТ В DEFA STUDIE (WWW.DEFA.RU).

Назад на стр. 071-016-5  Содержание  Вперед на стр. 071-016-7