|
|
|||||
Регистрация: Oct 2014
Сообщений: 13
|
Предел масштабирования
Имеется вот такой AS3 для масштабирования колесом мыши, но при сильном приближении или отдалении объект переворачивается и масштабируется в обратном направлении и иногда даже исчезает вовсе, как такое исправить? Или как задать предел этого масштабирования?
object.addEventListener(MouseEvent.MOUSE_WHEEL, zoom); function zoom(mouse:MouseEvent):void { var _xs:Number = mouse["stageX"]; var _ys:Number = mouse["stageY"]; var _xm:Number = mouse["localX"]; var _ym:Number = mouse["localY"]; object.scaleX += mouse.delta / 150; object.scaleY += mouse.delta / 150; object.x = _xs - _xm * object.scaleX; object.y = _ys - _ym * object.scaleY; } |
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Вам нужно составить условие, которое будет предотвращать присваивание значение
равных 0 или отрицательным числам. |
|
|||||
Регистрация: Oct 2014
Сообщений: 13
|
А как тут задать это условие? Условие чего?
|
|
|||||
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
Регистрация: Oct 2014
Сообщений: 13
|
Это не исправляет косяк с исчезновением объекта или его перевертывании
|
|
|||||
Регистрация: Jan 2013
Сообщений: 322
|
слоупочно конечно, но на всякий случай
var minScale:Number = 0.01; var maxScale:Number = 10; object.scaleX = Math.min(maxScale, Math.max(minScale, object.scaleX + mouse.delta / 150)); Последний раз редактировалось nubideus; 27.10.2014 в 03:44. |
|
|||||
Регистрация: Oct 2014
Сообщений: 13
|
Цитата:
|
|
|||||
Регистрация: Jan 2013
Сообщений: 322
|
неее, это просто ты не можешь нормально две строчки прикрутить, не надо на других сваливать
|
|
|||||
Регистрация: Oct 2014
Сообщений: 13
|
Откуда там взялся scale?
|
|
|||||
Регистрация: Jan 2013
Сообщений: 322
|
Qtime, о боже да на возьми готовый код только не тролль
object.addEventListener(MouseEvent.MOUSE_WHEEL, zoom); function zoom(mouse:MouseEvent):void { var _xs:Number = mouse["stageX"]; var _ys:Number = mouse["stageY"]; var _xm:Number = mouse["localX"]; var _ym:Number = mouse["localY"]; var minScale:Number = 0.01; var maxScale:Number = 10; var scale:Number = object.scaleX + mouse.delta / 150; object.scaleX = Math.min(maxScale, Math.max(minScale, scale)); object.scaleY = object.scaleX; object.x = _xs - _xm * object.scaleX; object.y = _ys - _ym * object.scaleY; } |
Часовой пояс GMT +4, время: 15:49. |
|
« Предыдущая тема | Следующая тема » |
|
|