![]() |
эффект дрожания...
подскажите, как сделать эффект дрожания.... ;)
саму идею - дальше сам... |
1. делать программно смещение клипа случайное в разные стороны.
2. сделать внутри мувиклипа несколько кадров со смещением. |
моежт поможешь исходничком? ;)
|
Цитата:
|
а помоему удобнее будет сделать прототип...
|
Цитата:
|
люди, может хватит между собой обговаривать ньансы...подкиньте исходничек для эффетка дрожания... ;)
|
Методом duplicateMovieClip() размножить основной клин на несколько копий. С оригинальным клипом дальше ничего не делать, а у копий:
1. Изменить _alpha (примерно от 10-40) - сам эффект дрожания; 2. На событие enterFrame повесить постоянное рандомное смещение (причем смещение прибавлять/вычитать с координатами оригинального клипа - так ничего никуда не съедет); 3. В какой-то момент у копий прописать их удаление (removeMovieClip()) ЗЫ: Ты ж просил идею, а "дальше сам"... Тут не только идею, но и псевдокод написали :)) Я бы набросал небольшой исходник, то там, где я сейчас работаю (основная работа) нельзя устанавливать доп. программы, в том числе и Flash (корпоративная безопасность). . |
Цитата:
Цитата:
|
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 пкс |
2 Silense
Большое спасибо... :) |
Цитата:
|
Дрожите на здоровье.........
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(); }; |
| Часовой пояс GMT +4, время: 17:21. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.