магические движения 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). |