PDA

Просмотр полной версии : как сделать эффект Wiggle


Кот Баюн
08.05.2018, 14:21
Всем привет!
Вопрос у меня такой есть.
В известной программе After Effects есть выражение wiggle (с двумя параметрами), которое может дать хаотичное движение.
Например если прописать wiggle на свойства x,y, объект будет рандомно дрожать (смещаться) на произвольное значение по x-y, туда и обратно, но не убегая далеко с места
Как такое реализовать средствами AS2?

Tails
08.05.2018, 14:37
Ну это же очень просто. Запомнить начальную позицию и генерировать точки со смещением от неё.

Кот Баюн
08.05.2018, 16:53
ребят, я тупой. объясните :)
может есть исходник у кого похожий, который можно переработать?

Добавлено через 1 час 55 минут
на основе одного исходника из интернета создал немного модифицированный код, но результат слишком часто трясется.
как сделать помедленнее, пока не знаю :)

onClipEvent (enterFrame) {
function shake(){
shakex = random(20)-10;
shakey = random(20)-10;
shakex *= 0.1;
shakey *= 0.1;
if(shakex<1 && shakey<1){
this._x = 0;
this._y = 0;
}
}
setInterval(shake,1000);
this._x -= shakex;
this._y -= shakey;
}
onClipEvent (enterFrame) {
if (this._x>310) {
this._x=309;
trace("X =" + this._x);
}
}
onClipEvent (enterFrame) {
if (this._y>310) {
this._y = 309;
trace("Y =" + this._y);
}
if (this._y<300) {
this._y = 300;
}
}

ALeXVoz
08.05.2018, 18:52
var x:Number = 50;
var y:Number = 50;
var dx:Number = 2;
var dy:Number = 2;

mc.onEnterFrame = function () {
mc._x = Math.round(x + Math.random() * dx)
mc._y = Math.round(y + Math.random() * dy)
}


Как то так. Можно не использовать целые и убрать округления. Надо экспериментировать как лучше будет.
AS2 че то подзабыл уже. Мож в синтаксисе немного ошибся.

Кот Баюн
08.05.2018, 18:57
этот код действует примерно как и тот, что я нашел в инете, он дает резкое дрожание, но не мягкое шевеление :)

Tails
08.05.2018, 19:30
Подключите твин. Генерируете точки - запускаете твин, по завершению анимации генерируете ещё раз и т.д. У твина есть бонус - выбор функции изинга, удобно будет менять характер "дрожания".

Кот Баюн
08.05.2018, 21:17
программно просто удобнее
можно отключить по необходимости, а твин не отключишь

Tails
08.05.2018, 22:01
Я имел ввиду программный твин, например этот (https://greensock.com/tweenlite-as).

Кот Баюн
08.05.2018, 22:05
это плагин, получается?
он создает свои классы?
при сборке SWF он зашивается внутрь?

Tails
08.05.2018, 22:14
Вот тут все исходники для AS2:
https://github.com/greensock/GreenSock-AS2

Это библиотека классов. Скачайте, добавьте к себе в проект и используйте так, как указано в примерах на сайте. При сборке swf зашивается внутрь.

Кот Баюн
08.05.2018, 22:17
ого-го, как оно есть, оказывается :)
попробую на досуге поковыряться.
тема интересная.
спасибо большое.