![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
У меня есть прямоугольник, в нем меняются твинами rotationX и rotationY по евенту MOUSE_MOVE, привязанному к stage.
Вот код, который выполняется: var rotateX:Tween = new Tween(this,"rotationX",Regular.easeOut,this.rotationX,percentY * 40,23); var rotateY:Tween = new Tween(this,"rotationY",Regular.easeOut,this.rotationY, - percentX * 40,23); 40 в этом коде символизирует насколько сильно будет идти поворот. Все идет гладко для моей сцены 500 на 400 пикселей. Разверни же флешку на весь экран или на сайте сделать ее большой и двинь мышкой дальше этих "безопастных" 500 на 400 пикселей, как ее начинает некисло так колбасить (не мышку, эээ точнее его, прямоугольник начинает колбасить). Конечно проблема еще связанная с твинами, что я создаю сотни твинов благодаря этому коду, которые без своей ссылки каждый сидят и умирают или где-то там в GC находятся спустя минуту движения мышкой. Определенных глюков это не дает, но все равно. Думаю, не проще ли движение делать с помощью одного ENTER_FRAME, который просто для плавности будет уменьшать скорость при приближении к разнице его_поворот и процентное_положение_мыши_на_сцене. Не факт, что это "колбас", кстати, вылечит. Почему так происходит не знаю. Кстати, вполне возможно мой код неправильный, вычисления процента мышки на сцене и передача на твин поворота. Только что провел пару тестов, судя по всему, как только percentY или percentX становятся больше 0.6, rotation-ы сходят с ума из-за скорости и количества поворотов, которые им надо сделать, благодаря умножению percent-ов на 40. Пробовал даже с уменьшением скорости при увеличении процентов. Вот код, как ни странно, fuck! выдается, а вот движение продолжается. var percentY:Number = mouseX / stage.stageWidth; var percentX:Number = mouseY / stage.stageHeight; var speedX:Number = 60-(percentX*100); var speedY:Number = 60-(percentY*100); if (speedX > 0) { var rotateX:Tween = new Tween(this,"rotationX",Regular.easeOut,this.rotationX,percentX * speedX,23); }else { trace("fuck!"); } if (speedY > 0) { var rotateY:Tween = new Tween(this,"rotationY",Regular.easeOut,this.rotationY, - percentY * speedY,23); } Добавлено через 13 часов 10 минут Сделал еще пару тестов, обнаружил проблемы в mouseX и mouseY. Вот выхлоп. Очень странные значения показывает mouseX если ее придвинуть к дальнему углу сцены. Скачат эти значения, словно рандомные. Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:41. |
|
|
« Предыдущая тема | Следующая тема » |
|
|