![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+4 06.05.14]
|
Вот 2 скрина на первом видим сетку из квадратиков. На втором тоже сетка, но с местом где квадраты расположены рандомно. Идея :
По onMouseMove ( к мышке аттачиться сначала некая область скажем круг, 100*100) все клипы попавшие в эту область, плавно, рандомно расходятся. При передвижении мышки дальше, клипы отошедшие с области , плавно возвращаются обратно, а новые клипы попавшие в область рандомно расходятся. И т.д. Нужна помощь как это делается. П.с. пока идея пришла такая. По маус мув, в цикле запоминется начальное значение, затем с помощью Math.random() все расходится ( если hitTest = true); а потом возвращаем начальное значение. НО в этом то и проблема, что маус мув идет постоянно и клипы не успевают получить начального значения. Может стоит попробовать следующее : На клипе писнуть ролловер и роллаут действия, При ролловер - рандомно расходимся, при роллОут - сходимся обратно. Тогда можно легко задействовать каждый клип,НО опять же косяк - если уж рандомно разошелся, то роллОут не сработает, ибо будет уже находится мышка в не области клипа ![]() Вообщем жду ващей помощи.... П.с. и еще вопрос - если я такими мелкими клипами буду заливать области типа 1600*1200 - плеер крякнется от такой нагрузки или нет? |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 57
|
Почитайте блог Волгоградец
![]() |
|
|||||
|
Может как то так:
import mx.transitions.Tween; import mx.transitions.easing.*; for (var i = 0; i < 5; i++) { for (var j = 0; j < 5; j++) { var p = _root.attachMovie("clip", "clip" + i + j, _root.getNextHighestDepth()); p._x = 40 + j * 40; p._y = 40 + i * 40; p.startX = p._x; p.startY = p._y; p.go = false; p.onMouseMove = function() { this.dis = Math.sqrt(Math.pow(_xmouse - this.startX, 2) + Math.pow(_ymouse - this.startY, 2)); if (this.dis < 50 && this.go == false) { this.go = true; this.tx.stop(); this.ty.stop(); this.rot.stop(); this.tx = new Tween(this, "_x", Elastic.easeOut, this._x, this.startX + random(100) - 50, 50); this.ty = new Tween(this, "_y", Elastic.easeOut, this._y, this.startY + random(100) - 50, 50); this.rot = new Tween(this, "_rotation", Elastic.easeOut, this._rotation, random(360), 50); } if (this.dis > 50) { this.go = false; this.tx.stop(); this.ty.stop(); this.rot.stop(); this.tx = new Tween(this, "_x", Regular.easeOut, this._x, this.startX, 10); this.ty = new Tween(this, "_y", Regular.easeOut, this._y, this.startY, 10); this.rot = new Tween(this, "_rotation", Regular.easeOut, this._rotation, 0, 10); } }; }} Последний раз редактировалось samana; 16.04.2010 в 17:32. |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Можно оптимизировать, отказываться еще рано.
Если записать все клипы в массив, то можно будет сначала определать те, на которые действует курсор, а потом уже их анимировать, не затрагивая другие. Ну и не создавать одну и ту же функцию на onMouseMove:
__________________
hauts.ru |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 57
|
И еще октазатся от математических функций хотябы от Pow если он часто используется) и от твинеров
|
![]() |
![]() |
Часовой пояс GMT +4, время: 13:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|