PDA

Просмотр полной версии : Как лимитировать значения минимального размера _xscale & _yscale?


minimalistic
31.05.2007, 21:16
На мувик "map" пишу скрипт:

mouseListener = new Object();
mouseListener.onMouseWheel = function (delta){
map._xscale = map._xscale+(delta*3);
map._yscale = map._yscale + (delta*3);
map._y = map._y + (delta*45);
};
Mouse.addListener(mouseListener);

Не могу понять как ограничить уменьшение размеров мувика скажем до 700 пикселей по горизонтали с сохранением пропорций или хотя-бы в пронцентах задать?

island
31.05.2007, 22:52
Наверное, цепочка рассуждений может быть следующей: как ограничить снизу ширину мувиклипа до 700 пикселей? -> надо использовать свойство мувика, которое отвечает за ширину и предложение if... -> ширина мувика хранится в свойстве _width, но ее также можно получить через пропорцию, зная ширину мувиклипа без масштабирования и текущее значение свойства _xscale -> через пропорцию вычисляем новое значение ширины с учетом потенциального масштабирования -> если новое значение ширины больше 700 пикселей - масштабируем, иначе - нет

MOHCTEP
01.06.2007, 00:17
Так подойдет?

mouseListener = new Object();
mouseListener.onMouseWheel = function (delta){
delta=map._width>700?delta:0;
map._xscale = map._xscale+(delta*3);
map._yscale = map._yscale + (delta*3);
map._y = map._y + (delta*45);
};
Mouse.addListener(mouseListener);

Ведьмак
01.06.2007, 21:16
Интересная конструкция:

delta=map._width>700?delta:0;

а можно про нее чуть подробнее?

Kikasso
01.06.2007, 21:22
if ( map._width > 700 ) delta = delta;
else delta = 0;
тернарный оператор:
(условие) ? (если правда) : (если неправда);

CrazyFlasher
01.06.2007, 21:26
блин, честно говоря я сам не сразу понял что это =) без пробелов не читабельно (имхо)

Ведьмак
01.06.2007, 21:28
отличная хрень

Kikasso
01.06.2007, 21:39
Я неправильно условие написал. Исправил.

minimalistic
03.06.2007, 14:25
А почему при этом условии zoom зависает? Тоесть как упираешся в предел, назад не скролит?

MOHCTEP
04.06.2007, 01:55
А почему при этом условии zoom зависает? Тоесть как упираешся в предел, назад не скролит?
Потому что этого условия в вашей просьбе не было.
Используйте в условиях знак дельта параметра прокрутки колесика.