Вход

Просмотр полной версии : вибрация и взрыв объекта


scarbo
20.01.2009, 01:09
Немного предисловия.
Есть фотка,методом copyPixels разбитая на множество кусочков,так вот надо чтоб эти кусочки постепенно усиливаясь завибрировали(задрожали),а потом разлетелись в разные стороны(взорвались).
Взрыв у меня получается,а вот с вибрацией никак.
Подскажите алгоритм "предвзрывной вибрации"

Arhitector
20.01.2009, 01:18
пиксель влево, 2 пикселя вправо вверх, пиксель вниз, и так далее...

Wolsh
20.01.2009, 12:49
Вот примерчик наваял

scarbo
21.01.2009, 01:25
Wolsh,спасибо,но если честно,то не впечатлило.А сундук Вы рисовали?
Нет мне надо фотки взрывать,и посему copyPixels использую.
Скажем должно быть похоже,как вот эти чуваки (http://www.deluxe-interactive.com/) бутылку (http://bacardimojito.ru/flashindex.html) трясут

Wolsh
21.01.2009, 09:36
Либо я Вас отчаянно не понимаю, scarbo, либо Вам просто скучно. Если хотите привести пример чего-то, то давайте ссылку на этот пример. Ссылка на сайт разработчиков примера наверно полезна, но только если сам пример прилагается. Я же сколько ни шарился, так и не увидел как вибрирует и взрывается эта мятная водка. То что Вам надо взрывать фотки, я прекрасно понял из первого поста, но Вы ведь поленились свой код копи пикселей выложить, а я в отместку поленился Вам его писать с нуля, да? Нормально? Вы просили вибрацию - оно вибрирует. А бутылка - нет. Только инерцию движения изображает и поиск устойчивости.

scarbo
21.01.2009, 10:57
код копи пикселей выложить
Код я написал,там ничего сложного нету,в цикле создаются квадратики,покрывающие всю фотку,если интересно,то вотfunction zoom_minus(target:MovieClip) {
var size:Number = 40;
var dep:Number = 0;
var sw:Number = target._width;
var sh:Number = target._height;
//
var bitmap:BitmapData = new BitmapData(sw, sh, true, 0);
bitmap.draw(target);
var vzriv_mc:MovieClip = target._parent.createEmptyMovieClip("vzriv_mc", target._parent.getNextHighestDepth());
//
for (var i = 0; i<sw/size; i++) {
for (var j = 0; j<sh/size; j++) {
var mc:MovieClip = vzriv_mc.createEmptyMovieClip("mc"+i+j, dep);
dep++;
mc._x = i*size;
mc._y = j*size;
var sr:Rectangle = new Rectangle(mc._x, mc._y, size, size);
var rs:Point = new Point(0, 0);
var bmp:BitmapData = new BitmapData(size, size, true, 0);
bmp.copyPixels(bitmap,sr,rs);
mc.attachBitmap(bmp,2,"auto",true);
mc.onEnterFrame = vzriv;
}
}
}
Функция vzriv - квадратики,летят в разные стороны,при этом уменьшаясь,но не долетая краев,осыпаются вниз,типа под силой тяжести.Тут проблем нету,но этот взрыв получается не подготовленнный,вот я думал,что может эту фотку лучше "раздражать" предварительно.Может я не правильно выразился,может не вибрация,а потеря "молекулярной" связи?

Wolsh
21.01.2009, 14:14
Хм.. Ну, может вот так поможет тебе сформулировать))
Да, обрати внимание, у тебя когда имя для кусков создается - ошибка.
var mc:MovieClip = vzriv_mc.createEmptyMovieClip("mc"+i+j, dep);
Скажем, когда i=61 а j=2, это ведь тоже самое что когда i=6, a j=12, верно?
Давай теперь по этому файлу что именно не так. Тут уже фотка, квадратики, копи пикселы, рост вибрации и разрушение всех молекулярных связей напрочь.

scarbo
21.01.2009, 19:14
trace("BABAH!!!!");:taunt:
Да, обрати внимание, у тебя когда имя для кусков создается - ошибка.Спасибо,учту.Но так как глубина разная,флеш не так придирчив.
Видно моя проблема в том,что я косноязычен,но зато хорошо умею отвечать на поставленные вопросы.
Представьте себе объект,в ЦЕНТРЕ его поселяется объект паразит,который невиден,но раздрыгивает объект пока тот не взорвется.Во!

BBOY Ильич
21.01.2009, 20:24
i=1;
j=2;
trace("mc"+i+j)//mc12

У меня все в порядке :)

Wolsh
21.01.2009, 23:32
У меня все в порядкеА так?
i=2, j=13
trace("mc"+i+j);
i=21, j=3
trace("mc"+i+j);
И при чем тут глубина? Как ты дальше УПРАВЛЯТЬ ими собираешься?

BBOY Ильич
22.01.2009, 00:26
i=2, j=13
trace("mc"+i+j);//mc213
i=21, j=3
trace("mc"+i+j);//mc213
все шикарно =)

scarbo
22.01.2009, 02:01
управлять через this можно,но не в этом суть

iNils
22.01.2009, 15:51
i=2, j=13
trace("mc"+i+j);//mc213
i=21, j=3
trace("mc"+i+j);//mc213
все шикарно =)Что шикарного? Объект во втором ряду на 13 месте и объект в 21 ряду на 3 месте, называются одинаково. Это ошибка.

Wolsh
22.01.2009, 15:58
суть в том что нельзя управлять двумя клипами с одинаковыми именами. ни удалить, не передвинуть, ни альфу поменять. ничего. только вместе с контейнером удалятся. шикарно? про this вообще перл. вы наверно имели в виду, что прямо при создании опишите клипу ВСЮ его судьбу? потому что ниоткуда из другого места программы вы уже никогда к нему не обратитесь, никаким перечислением в цикле, ни прямым обращением по имени.

BBOY Ильич
22.01.2009, 17:25
Что шикарного? Объект во втором ряду на 13 месте и объект в 21 ряду на 3 месте, называются одинаково. Это ошибка.

Ага, прошу прощения перед Wolsh'ем. Я его неправильно понял, и с чего-то решил, что проблема в том, что при задании имени клипу переменные i и j складываются:) И в своем примере я указал, что у меня образуется простая строка, хотя это, оказывается, и не было проблемой:) Извините.

scarbo
23.01.2009, 03:17
потому что ниоткуда из другого места программы вы уже никогда к нему не обратитесь
Wolsh, а зачем это в моей ситуации?Они ж взорвались и все.
Но ошибка ясна и я её исправил,по эффекту есть еще советы?

Wolsh
23.01.2009, 11:02
Вы описать можете Ваш "эффект"? не на уровне "туда ктото забрался и рвется", а на уровне что происходит с объектами?