![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Я сделал движущиеся частицы, чтобы этот код работал, достаточно в библиотеке создать клип с именем flake
Как вы видите, у меня с моими частицами несколько проблем. Во первых, я хотел их сделать как-бы вылетающими справа, из-за экрана, и летящими влево. Со временем с помощью рандома и числа я сделаю еще и их исчезновение. Тут проблема в том, что я не знаю, как определить ширину экрана пользователя, или ширину экрана swf в данный момент. А если это все будет бэкграундом сайта - там тоже - как определить правый край? Поэтому на данный момент в плане координат появления частиц все криво. Прямые грубые числа которые никуда не подходят кроме как для теста. Я хотел сделать движение как-бы каждой частицы в разную точку на оси _y. Получился бы эффект словно их колыхает ветер (хотя на самом деле просто разные точки в немножечко разные _y летят). Я пробовал просто изменить скорость плюса к this._y, но получалась свистопляска вместо красивого полета ![]() Я буду рад любым идеям или даже намекам. Тут можно посмотреть swf как он есть по коду ниже: http://www.swfcabin.com/open/1342215422 this.onEnterFrame = function() { var mspeed:Number = new Number(); var ran:Number = new Number(); var toy:Number = new Number(); //tox = random(500); mspeed = random(6); ran = random(20); if (mspeed==0) { mspeed=1; } if (ran==1) { mspeed=20; } toy = -200+random(800); n = this.getNextHighestDepth(); flak = attachMovie("flake", "flake" + n, n); flak._x = 700; flak._y = random(1700); flak._alpha = random(100); flak._xscale = random(60); flak._yscale = flak._xscale; //tox:Number = new Number(); //flak.filters = [blur]; flak.onEnterFrame = function() { this._x-=mspeed; this._y+=(mspeed/1.2); }; }; |
|
|||||
|
Получить ширину текущего размера окна флешки можно так:
У вас для каждой снежинки отдельно создается onEnterFrame, это не есть гуд. Управляйте всеми снежинками из одного onEnterFrame, перебирая к примеру все снежинки на экране циклом. Ссылки на снежинки лучше всего хранить в массиве, для достижения наибольшей производительности. С ветром посложнее, для настоящего труЪ ветра нужно через некоторые интервалы времени генерировать рандомные направление и скорость, Это может быть тупо 2 числа: скорость и угол. Далее все снежинки двигать по этим показателям, добавляя для каждой отдельно - своё небольшое смещение, для реалистичности. Может быть вам пригодиться этот код: Этот код двигает _root.myClip в направлений его ротации, со скоростью speed
__________________
Дети не должны знать о своих родителях |
|
|||||
|
Насчет массива не совсем понял. В цикле ведь тогда придется каждый раз перебирать клипы и каждый раз делать + к движению?
onEnterFrame вроде бы задает каждому клипу свой код, который они бесконечно выполняют (до условия и т.д.). А с массивом придется создавать кучу переменных для каждого мувика, чтобы в цикле соблюдать отдельное движение для каждого клипа-элемента массива. Я могу все не так понимать, кстати. Для тру ветра согласен, попробую сделать с этим что-то. Кстати, у меня во флешке клипы иногда просто исчезают. С чем это может быть связано? Возможно, глубина другого клипа используется... Спасибо за две строки кода, очень помогут! |
|
|||||
|
|
|
|||||
|
Ага, с глубиной уже есть эта строчка.
Сделал с помощью двух строчек кода, что Tails указал выше, получилось намного живее, чем раньше. Теперь осталось сделать так, чтобы производительность не сходила с ума. Насчет массива, если честно, не совсем понял. Я заметил, что это частое и верное решение, работа с массивом. С ним и циклом проще делать всякие вещи "по очереди". Но вот как присвоить каждому клипу-элементу массива свой "автоматический цикл движения" я не знаю. |
|
|||||
|
Регистрация: Mar 2012
Сообщений: 20
|
Есть исходник с www.freeactionscript.com. Только там код откомментирован на английском, но, в принципе, все понятно (и про добавление снежинок в массив, и про перебор массива, и про ветер).
|
|
|||||
|
Сделал максимум частиц - 140, чтобы сохранять производительность.
Вот исходник, теперь все выглядит намного живее. Исходник с массивом посмотрю, спасибо! |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|