Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Нужен скрипт движения AS2 (http://www.flasher.ru/forum/showthread.php?t=184673)

FixMAN 24.09.2012 14:55

Нужен скрипт движения AS2
 
Есть объект. Необходимо, что бы этот объект двигался от точки "А" в точку "Б" (вправо), движение очень медленное (минут на 15-ь). Какой скрипт нужно использовать к этому объекту?

Hauts 24.09.2012 15:57

Код AS1/AS2:

import com.greensock.*
TweenLite.to(myClip, 15 * 60, {_x: 1000, _y: 1000})

Используйте твинер.

FixMAN 30.09.2012 17:17

Не совсем понял. Что такое "твинер" и как им пользоваться?

Hauts 01.10.2012 12:02

FixMAN, твинер — это библиотека для анимации. Основная задача — изменение численных свойств объектов по времени и на основании какой-либо функции.

Заходите на http://greensock.com, скачивайте библиотеку для as2, распаковывайте архив. Папку "com" положите в ту же директорию, где у вас исходник. Это необходимо для того, чтобы код классов (файлы .as) был доступен в коде вашей флэшки.

Далее в коде напишите (код в кадре):
Код AS1/AS2:

import com.greensock.*

— это значит, что вы "импортируете" классы из папки "com" и вложенной папки "greensock".

Далее:
Код AS1/AS2:

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 минуту
И, конечно же, обязательно посмотрите примеры с сайта и прочитайте документацию. Штука очень полезная и относительно простая для понимания.

FixMAN 01.10.2012 13:22

Ок. Всё понял. Спасибо)

Добавлено через 20 минут
Дополнительный вопрос. Как сделать что бы анимация повторялась?

Hauts 01.10.2012 13:47

Код AS1/AS2:

TweenLite.to(myClip, 15 * 60, {_x: 1000, _y: 1000, repeat: -1})

В документации это есть.

FixMAN 01.10.2012 15:17

Усложним задачу: как сделать так, что бы объект появлялся через какое то время?
Ну допустим, надо что бы объект появился через через 10-ь секунд проиграл свою анимацию и снова появился через 10-ь секунд и так далее.

Hauts 01.10.2012 15:47

Код AS1/AS2:

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 минуты
Код AS1/AS2:

import com.greensock.*
var delayToShow = 10 * 1000
 
function delayedShow(){
        myClip._x = 1000
        TweenLite.to(myClip, 10 * 1000, {_x:1000, onComplete: delayedShow, delay: delayToShow})
}
 
delayedShow()

— если с твинером. Могут быть ошибки, так как пишу по памяти.

FixMAN 01.10.2012 20:21

Да ты мозг) Спасибо :)

Добавлено через 2 минуты
Чуть не забыл. Как скорость регулировать? Мне нужно что бы объект перемещался быстрее. Нужно добавлять новую функцию для скорости?

Hauts 01.10.2012 20:29

В твинере скорость определяется временем анимации, второй параметр в TweenLite.to.

Без твинера можно поменять "this._x++;" на "this._x+=10;"


Часовой пояс GMT +4, время: 18:17.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.