X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Функция Tween() в Action Script 3.0, разжевать бы :)
Banderas
Banderas
Topic Starter сообщение 23.2.2010, 19:56; Ответить: Banderas
Сообщение #1


Должен был разбирать чисто для себя, но подумал что это будет интересно и другим пользователям. Заодно узнаю правильно ли я всё понял :) Собственно виновник темы:
пс. без атача не разобраться ;)

import fl.transitions.Tween; // импорт библиотеки Твин
import fl.transitions.easing.*; // Импорт всех(*) разделов библиотеки изин

var homeX:Number = 955; // задаём координаты мувиклипа (клипа) при выборе раздела хоум
var homeY:Number = 767;

var newsX:Number = -402; // задаём координаты мувиклипа (клипа) при выборе раздела нювс
var newsY:Number = 558;

var aboutX:Number = 661; // задаём координаты мувиклипа (клипа) при выборе раздела ебаут
var aboutY:Number = -307;

var xTween:Tween; // задаём переменные для функции движения
var yTween:Tween;

xTween = new Tween(main_mc, "x", Strong.easeInOut, main_mc.x,homeX,2, true); // присваиваем переменным параметры движения; движение будет происходить от
yTween = new Tween(main_mc, "y", Strong.easeInOut, main_mc.y,homeY,2, true); // координат в которых находится сейчас клип, до координат клипа в разделе хоум

home_btn.addEventListener(MouseEvent.CLICK, navigate); // присваимваем функцию навигейт кнопочкам
news_btn.addEventListener(MouseEvent.CLICK, navigate);
about_btn.addEventListener(MouseEvent.CLICK, navigate);

function navigate(event:MouseEvent):void {
    if (event.target == home_btn) { // если предмет который выполняет событие есть хоум_батн, тогда выполняем функцию сетТвин
        setTween(homeX, homeY);
    }
    else if (event.target == news_btn) { // аналогично
        setTween(newsX, newsY);
    }
    else if (event.target == about_btn) { // аналогично
        setTween(aboutX, aboutY);
    }
}


function setTween(tweenX:Number,tweenY:Number):void { // вот в этом куске кода я "дупля не режу", что тут задаётся
    xTween.begin = main_mc.x; // анимация движения начинается с координат, в которых находится клип
    yTween.begin = main_mc.y;
    xTween.finish = tweenX; // заканчивается там, где указанно в переменных, при запросе функции
    yTween.finish = tweenY;
    xTween.start(); // начинаем анимацию движения
    yTween.start();
}

xTween.stop(); // нафиг их сюда?
yTween.stop();


Если у кого стоит Макромедиа или старый флеш, то постараюсь растолковать что и как я делал... Но для начала смотрим флешку _http://megaswf.com/view/079f84fcac0cce0a7dc9ec6fb3e81c20.html
Есть 3 квадратика: красный - хоум, зелёный - нювс и жёлтый - ебаут. Изначально они расположены так: красный вверху слева, зелёный вверху справа, жёлтый на месте (затупил хД). Эти 3 квадратика есть один мувиклип main_mc. Для отображения одного из квадратиков, этот мувиклип просто перемещается по координатам хоум, нювс и эбаут, которые я задал и всунул в переменные. Надеюсь понятно :)
Прикрепленный файл  TweenIMG.zip ( 18,15 килобайт ) Кол-во скачиваний: 189
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 23.2.2010, 22:24; Ответить: ZiTosS
Сообщение #2


Banderas, Tween() это не функция, это создание объекта, так как предворено new.
У тебя в примере создаются 2 объекта tween c которыми ты потом работаешь, это xTween и yTween.

Вообщем дам тебе ссылку на конструктор Tween(), мы его как раз и используем.
И распишу тебе каждый из параметров, передаваемых объекту.
Параметры
obj:Object — Объект, являющийся целями Tween.

prop:String — Имя свойства (значение параметра obj) на которое будет направлено воздействие.

func:Function — Имя используемой функции замедления.

begin:Number — Начальное значение параметра prop.

finish:Number — Число, указывающее конечное значение параметра prop (целевого объекта, подвергаемого анимации движения).

duration:Number — Продолжительность движения. Если значение отрицательное или пропущено, устанавливается значение infinity.

useSeconds:Boolean (default = false) — Флаг, определяющий использование секунд вместо кадров. Функция использует секунды, если значение флага — true, или кадры относительно значения, определенного в параметре duration, если значение флага — false.


По поводу класса Strong из библиотеки easing читать здесь

В нашем примере:
xTween = new Tween(main_mc, "x", Strong.easeInOut, main_mc.x,homeX,2, true);

main_mc - объект, над которым совершаем действия Tween
"x" - означает что мы будем совершать действия над main_mc.x
Strong.easeInOut - означает, что мы будем использовать резкое замедление из библиотеки easing
main_mc.x - начальное значение воздействия это текущее положение мувиклипа по оси X
homeX - конечным значением будет положение области Home по координате X
2 - Длительность анимации движения в кадрах или секундах
true - означает, что используем количество секунд, а не кадров
yTween = new Tween(main_mc, "y", Strong.easeInOut, main_mc.y,homeY,2, true);

main_mc - объект, над которым совершаем действия Tween
"y" - означает что мы будем совершать действия над main_mc.y
Strong.easeInOut - означает, что мы будем использовать резкое замедление из библиотеки easing
main_mc.y - начальное значение воздействия это текущее положение мувиклипа по оси Y
homeY - конечным значением будет положение области Home по координате Y
2 - Длительность анимации движения в кадрах или секундах
true - означает, что используем количество секунд, а не кадров

P.s.: А вот всё про класс Tween

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Поблагодарили: (0)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Лицензия на Shop script 8 + плагины
2 inetuser 2954 17.1.2022, 23:30
автор: inetuser
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыMSE-Script - CMS для создания музыкальных сайтов и mp3 дорвеев
0 MSE-Script 2717 13.12.2018, 15:40
автор: MSE-Script
Открытая тема (нет новых ответов) Создание скрипта парсера для Shop-Script 7 Webasyst
0 rokon 911 26.10.2018, 13:54
автор: rokon
Открытая тема (нет новых ответов) Копирайтер по тематике CPA (cost per action)
0 Chaser 1611 3.8.2017, 15:41
автор: Chaser
Открытая тема (нет новых ответов) ProOffers - Cost Per Action
СРА сеть нового поколения
19 ProOffers 5618 13.8.2016, 11:26
автор: ProOffers


 



RSS Текстовая версия Сейчас: 29.3.2024, 17:55
Дизайн