Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.10.2014, 03:05
Qtime вне форума Посмотреть профиль Отправить личное сообщение для Qtime Найти все сообщения от Qtime
  № 1  
Ответить с цитированием
Qtime

Регистрация: Oct 2014
Сообщений: 13
Question Предел масштабирования

Имеется вот такой AS3 для масштабирования колесом мыши, но при сильном приближении или отдалении объект переворачивается и масштабируется в обратном направлении и иногда даже исчезает вовсе, как такое исправить? Или как задать предел этого масштабирования?

Код 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;
 
}

Старый 26.10.2014, 12:59
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 2  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Вам нужно составить условие, которое будет предотвращать присваивание значение
равных 0 или отрицательным числам.

Старый 26.10.2014, 13:36
Qtime вне форума Посмотреть профиль Отправить личное сообщение для Qtime Найти все сообщения от Qtime
  № 3  
Ответить с цитированием
Qtime

Регистрация: Oct 2014
Сообщений: 13
А как тут задать это условие? Условие чего?

Старый 26.10.2014, 14:08
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 4  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
Код AS3:
object.x = Math.max(0,_xs - _xm * object.scaleX);
ну, как то так, наверно
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 26.10.2014, 17:38
Qtime вне форума Посмотреть профиль Отправить личное сообщение для Qtime Найти все сообщения от Qtime
  № 5  
Ответить с цитированием
Qtime

Регистрация: Oct 2014
Сообщений: 13
Цитата:
Сообщение от cleptoman Посмотреть сообщение
Код AS3:
object.x = Math.max(0,_xs - _xm * object.scaleX);
ну, как то так, наверно
Это не исправляет косяк с исчезновением объекта или его перевертывании

Старый 27.10.2014, 03:31
nubideus вне форума Посмотреть профиль Отправить личное сообщение для nubideus Найти все сообщения от nubideus
  № 6  
Ответить с цитированием
nubideus

Регистрация: Jan 2013
Сообщений: 322
слоупочно конечно, но на всякий случай
Код AS3:
var minScale:Number = 0.01;
var maxScale:Number = 10;
object.scaleX = Math.min(maxScale, Math.max(minScale, object.scaleX + mouse.delta / 150));
Код:
scale = object.scaleX + mouse.delta / 150;
if(scale > maxScale) scale = maxScale;
else if(scale < minScale) scale = minScale;
object.scaleX = scale;


Последний раз редактировалось nubideus; 27.10.2014 в 03:44.
Старый 28.10.2014, 16:22
Qtime вне форума Посмотреть профиль Отправить личное сообщение для Qtime Найти все сообщения от Qtime
  № 7  
Ответить с цитированием
Qtime

Регистрация: Oct 2014
Сообщений: 13
Цитата:
Сообщение от nubideus Посмотреть сообщение
слоупочно конечно, но на всякий случай
Код AS3:
var minScale:Number = 0.01;
var maxScale:Number = 10;
object.scaleX = Math.min(maxScale, Math.max(minScale, object.scaleX + mouse.delta / 150));
Код:
scale = object.scaleX + mouse.delta / 150;
if(scale > maxScale) scale = maxScale;
else if(scale < minScale) scale = minScale;
object.scaleX = scale;
Это очень слоупочно, к тому же неработоспособно

Старый 29.10.2014, 03:28
nubideus вне форума Посмотреть профиль Отправить личное сообщение для nubideus Найти все сообщения от nubideus
  № 8  
Ответить с цитированием
nubideus

Регистрация: Jan 2013
Сообщений: 322
Цитата:
Сообщение от Qtime Посмотреть сообщение
Это очень слоупочно, к тому же неработоспособно
неее, это просто ты не можешь нормально две строчки прикрутить, не надо на других сваливать

Старый 29.10.2014, 18:01
Qtime вне форума Посмотреть профиль Отправить личное сообщение для Qtime Найти все сообщения от Qtime
  № 9  
Ответить с цитированием
Qtime

Регистрация: Oct 2014
Сообщений: 13
Цитата:
Сообщение от nubideus Посмотреть сообщение
неее, это просто ты не можешь нормально две строчки прикрутить, не надо на других сваливать
Откуда там взялся scale?

Старый 30.10.2014, 01:34
nubideus вне форума Посмотреть профиль Отправить личное сообщение для nubideus Найти все сообщения от nubideus
  № 10  
Ответить с цитированием
nubideus

Регистрация: Jan 2013
Сообщений: 322
Qtime, о боже да на возьми готовый код только не тролль
Код 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"];
 
			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, время: 00:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:38.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.