Просмотр полной версии : эффект дрожания...
Charly84
01.09.2005, 01:32
подскажите, как сделать эффект дрожания.... ;)
саму идею - дальше сам...
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
а помоему удобнее будет сделать прототип...
Бармалей
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 (корпоративная безопасность).
.
подскажите, как сделать эффект дрожания....
саму идею - дальше сам...
моежт поможешь исходничком? ;)
Не видите ли вы тут противоречия? :)
Charly84
01.09.2005, 12:57
2 iNils
Теперь прошу исходник...
Я сам сделал эффект дрожания - но он что-то не очень реальный...
Может подкините исходник? ;)
Создай любой мувик и
кадр 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
Теперь прошу исходник...
Я сам сделал эффект дрожания - но он что-то не очень реальный...
Может подкините исходник? ;)
Для реальности надо затухание плавное сделать . В каждом ключевом кадре раскачку уменьшай, а последний ключевой кадр скопируй с первого :) Это теория, я так не делал, но мне кажется логически будет так. Я сам недавно начал флэшем заниматься
Дрожите на здоровье.........
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);
Предвосхищая вопрос -
а как остановить? -
чуть подправить -
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();
};
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.