PDA

Просмотр полной версии : эффект дрожания...


Charly84
01.09.2005, 01:32
подскажите, как сделать эффект дрожания.... ;)
саму идею - дальше сам...

iNils
01.09.2005, 01:52
1. делать программно смещение клипа случайное в разные стороны.
2. сделать внутри мувиклипа несколько кадров со смещением.

Charly84
01.09.2005, 01:57
моежт поможешь исходничком? ;)

K.A.T.A.F.A.L.K.E.R
01.09.2005, 02:40
1. делать программно смещение клипа случайное в разные стороны.
2. сделать внутри мувиклипа несколько кадров со смещением.
3. Задать массив со смещениями, да так чтоб суммарное смещение было равно нулю... А то если рандомом - один аллах знает почему у флеша не работает теория вероятности и почему абсолютно рандомные смещения заставляют мувик в итоге съехать х.з. куда :D

ffffff
01.09.2005, 03:29
а помоему удобнее будет сделать прототип...

Бармалей
01.09.2005, 11:14
3. задать массив со смещениями, да так чтоб суммарное смещение было равно нулю... а то если рандомом - один аллах знает почему у флеша не работает теория вероятности и почему абсолютно рандомные смещения заставляют мувик в итоге съехать х.з. куда :d
а что тебе мешает ограничения поставить на максимальные смещения?

Charly84
01.09.2005, 12:00
люди, может хватит между собой обговаривать ньансы...подкиньте исходничек для эффетка дрожания... ;)

Cvazimodo
01.09.2005, 12:09
Методом duplicateMovieClip() размножить основной клин на несколько копий. С оригинальным клипом дальше ничего не делать, а у копий:
1. Изменить _alpha (примерно от 10-40) - сам эффект дрожания;
2. На событие enterFrame повесить постоянное рандомное смещение (причем смещение прибавлять/вычитать с координатами оригинального клипа - так ничего никуда не съедет);
3. В какой-то момент у копий прописать их удаление (removeMovieClip())

ЗЫ: Ты ж просил идею, а "дальше сам"... Тут не только идею, но и псевдокод написали :))
Я бы набросал небольшой исходник, то там, где я сейчас работаю (основная работа) нельзя устанавливать доп. программы, в том числе и Flash (корпоративная безопасность).
.

iNils
01.09.2005, 12:10
подскажите, как сделать эффект дрожания....
саму идею - дальше сам...

моежт поможешь исходничком? ;)

Не видите ли вы тут противоречия? :)

Charly84
01.09.2005, 12:57
2 iNils

Теперь прошу исходник...
Я сам сделал эффект дрожания - но он что-то не очень реальный...


Может подкините исходник? ;)

Silense
01.09.2005, 13:13
Создай любой мувик и
кадр 1
this._x=100
this._y=100
кадр 2
this._x=this._x+random(20)-10
this._y=this._y+random(20)-10
//интервал дрожания от -10 до +10 пкс

Charly84
02.09.2005, 14:47
2 Silense

Большое спасибо... :)

zlodey538
02.09.2005, 15:04
2 iNils

Теперь прошу исходник...
Я сам сделал эффект дрожания - но он что-то не очень реальный...


Может подкините исходник? ;)
Для реальности надо затухание плавное сделать . В каждом ключевом кадре раскачку уменьшай, а последний ключевой кадр скопируй с первого :) Это теория, я так не делал, но мне кажется логически будет так. Я сам недавно начал флэшем заниматься

Штрек
03.09.2005, 05:09
Дрожите на здоровье.........

MovieClip.prototype.drog = function(amlituda, speed) {
clearInterval(idd);
var x = this._x;
var y = this._y;
var n = 0;
var idd = setInterval(function (amlituda, trg) {
if (n%2 == 0) {
trg._x += 2*amlituda*Math.random()-amlituda;
trg._y += 2*amlituda*Math.random()-amlituda;
} else {
trg._x = x;
trg._y = y;
}
n++;
updateAfterEvent();
}, 1000/speed, amlituda, this);
};
mc.drog(2, 100);

Штрек
03.09.2005, 05:29
Предвосхищая вопрос -
а как остановить? -
чуть подправить -
MovieClip.prototype.drog = function(amlituda, speed) {
if (amlituda == undefined && speed == undefined) {
clearInterval(this.idd);
return;
}
clearInterval(this.idd);
var x = this._x;
var y = this._y;
var n = 0;
this.idd = setInterval(function (amlituda, trg) {
if (n%2 == 0) {
trg._x += 2*amlituda*Math.random()-amlituda;
trg._y += 2*amlituda*Math.random()-amlituda;
} else {
trg._x = x;
trg._y = y;
}
n++;
updateAfterEvent();
}, 1000/speed, amlituda, this);
};
mc.drog(2, 100);
//останавливаем
knopka.onPress = function() {
mc.drog();
};