Форум 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)
-   -   Влево-вправо (http://www.flasher.ru/forum/showthread.php?t=70845)

sergeyI 23.10.2005 12:51

Влево-вправо
 
Помогите, пожалуйста, я не очень давно копаюсь в Флеше, пока не понимаю, как сделать анимашку. Вероятно где-то это объяснялось, но в поиске я такого не нашел...
Ситуация:

Есть клип (мс). Нужно сделать на него скрипт для следующего движения:

1) С ускорением из точки [1] мс доезжает до точки [2]
2) Из точки [2] с замедлением доезжаем до точки [3]
3) В точке [3] останавливаемся на [n] секунд
4) Из точки [3] обратно едем в [2] с ускорением...

и все то же, но назад и по циклу (влево-вправо).

Можно было бы сделать все просто с motion tween, но это как-то не современно.. ;)
Да, чтобы это можно было применять для разных мс, переменные [1], [2], [3] и [n] нужно выделить отдельно, чтобы их можно менять от случая к случаю.
Заранее огромное спасибо.

sergeyI 23.10.2005 14:04

В принципе есть следующий вариант:

Цитата:

myButton_btn.onRelease = function() {
tweenBall(mx.transitions.easing.Regular.easeInOut);
};
function tweenBall(easeType) {
var begin = 20;
var end = 380;
var time = 80;
var mc = ball_mc;
ballTween = new mx.transitions.Tween(mc, "_x", easeType, begin, end, time);
ballTween.onMotionFinished = function() {
this.yoyo();
};
}
Но объясните, как устанавливать определенной длины паузу на одном и другой длины на другом конце движения? И вот еще момент: Точка begin и end не должна быть все время одинаковой, т.е. надо назначить на нее random().
Да, при таком скрипте "центральную" точку движения можно смещать куда-нибудь ближе к началу или к концу?

Mr Null 23.10.2005 19:08

http://www.potapenko.com/rus/articles/conveyor.htm
читай там, всё что тебе надо есть.

sergeyI 24.10.2005 13:16

Да, спасибо, очень полезная ссылка, почитал.
Единственное, я не до конца пока освоил функции, а до конвееров мне еще подрасти надо ;)
Можно ли добиться этого же эффекта, пусть более громоздким кодом, но попроще?

Mr Null

Если разобрался с конвеерами, дай примерчик какой-нибудь, pls.

sergeyI 27.10.2005 10:55

Что ж, приходится все делать самому... Но коряво. :)
Цитата:

line_1(mx.transitions.easing.Regular.easeInOut);
function line_1(easeType) {
var begin = 250;
var end = -520;
var time = 1150;
var mc = line1;
l_ine1 = new mx.transitions.Tween(mc, "_x", easeType, begin, end, time);
l_ine1.onMotionFinished = function() {
this.yoyo();
};
}
line_2(mx.transitions.easing.Regular.easeInOut);
function line_2(easeType) {
var begin = -410;
var end = 120;
var time = 348;
var mc = line2;
l_ine2 = new mx.transitions.Tween(mc, "_x", easeType, begin, end, time);
l_ine2.onMotionFinished = function() {
this.yoyo();
};
}
line_3(mx.transitions.easing.Regular.easeInOut);
function line_3(easeType) {
var begin = 410;
var end = -120;
var time = 311;
var mc = line3;
l_ine3 = new mx.transitions.Tween(mc, "_x", easeType, begin, end, time);
l_ine3.onMotionFinished = function() {
this.yoyo();
};
}
line_4(mx.transitions.easing.Regular.easeInOut);
function line_4(easeType) {
var begin = -10;
var end = 320;
var time = 520;
var mc = line4;
l_ine4 = new mx.transitions.Tween(mc, "_x", easeType, begin, end, time);
l_ine4.onMotionFinished = function() {
this.yoyo();
};
}
line_5(mx.transitions.easing.Regular.easeInOut);
function line_5(easeType) {
var begin = -210;
var end = 490;
var time = 680;
var mc = line5;
l_ine5 = new mx.transitions.Tween(mc, "_x", easeType, begin, end, time);
l_ine5.onMotionFinished = function() {
this.yoyo();
};
}
Подскажите, пожалуйста, как можно оптимизировать этот блок.
Значения начала, конца и времени не обязательно конкретные, возможно и random().


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

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