Просмотр полной версии : Нужен скрипт движения AS2
Есть объект. Необходимо, что бы этот объект двигался от точки "А" в точку "Б" (вправо), движение очень медленное (минут на 15-ь). Какой скрипт нужно использовать к этому объекту?
import com.greensock.*
TweenLite.to(myClip, 15 * 60, {_x: 1000, _y: 1000})
Используйте твинер.
Не совсем понял. Что такое "твинер" и как им пользоваться?
FixMAN, твинер — это библиотека для анимации. Основная задача — изменение численных свойств объектов по времени и на основании какой-либо функции.
Заходите на http://greensock.com, скачивайте библиотеку для as2, распаковывайте архив. Папку "com" положите в ту же директорию, где у вас исходник. Это необходимо для того, чтобы код классов (файлы .as) был доступен в коде вашей флэшки.
Далее в коде напишите (код в кадре):
import com.greensock.*
— это значит, что вы "импортируете" классы из папки "com" и вложенной папки "greensock".
Далее:
TweenLite.to(myClip, 15 * 60, {_x: 1000, _y: 1000})
— это непосредственно обращение к твинеру. TweenLite - это твинер. TweenLite.to - это вызов анимации.
myClip — это instance name мувиклипа, который лежит на сцене.
15 * 60 — это пятнадцать раз по 60 секунд, то есть 15 минут. Это я так для удобства записал просто.
{_x: 1000, _y: 1000} — это объект со свойствами для анимации. Для примера я ставлю конечными свойствами _x и _y по 1000 пикселей.
Добавлено через 1 минуту
И, конечно же, обязательно посмотрите примеры с сайта и прочитайте документацию. Штука очень полезная и относительно простая для понимания.
Ок. Всё понял. Спасибо)
Добавлено через 20 минут
Дополнительный вопрос. Как сделать что бы анимация повторялась?
TweenLite.to(myClip, 15 * 60, {_x: 1000, _y: 1000, repeat: -1})
В документации это есть.
Усложним задачу: как сделать так, что бы объект появлялся через какое то время?
Ну допустим, надо что бы объект появился через через 10-ь секунд проиграл свою анимацию и снова появился через 10-ь секунд и так далее.
var delayToShow = 10 * 1000;
var startTime = getTimer();
myClip._alpha = 0;
myClip._x = 100
myClip.onEnterFrame = function() {
if (getTimer() - startTime > delayToShow) {
if (this._x < 1000) {
if (this._alpha < 100) {
this._alpha += 5;
}
this._x++;
} else {
if(this._alpha > 0){
this._alpha -= 5
} else {
this._x = 100;
startTime = getTimer()
}
}
}
};
Как-нибудь так? Если без твинера.
Добавлено через 2 минуты
import com.greensock.*
var delayToShow = 10 * 1000
function delayedShow(){
myClip._x = 1000
TweenLite.to(myClip, 10 * 1000, {_x:1000, onComplete: delayedShow, delay: delayToShow})
}
delayedShow()
— если с твинером. Могут быть ошибки, так как пишу по памяти.
Да ты мозг) Спасибо :)
Добавлено через 2 минуты
Чуть не забыл. Как скорость регулировать? Мне нужно что бы объект перемещался быстрее. Нужно добавлять новую функцию для скорости?
В твинере скорость определяется временем анимации, второй параметр в TweenLite.to.
Без твинера можно поменять "this._x++;" на "this._x+=10;"
Отлично! ))) Спасибо :)))
Добавлено через 5 минут
Какая функция отвечает за повторение анимации в первом случае (не твиннер) ?
Добавлено через 12 минут
Какая функция отвечает за повторение анимации в первом случае (не твиннер) ?
— onEnterFrame все контролирует. Там других и нет же.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.