![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2008
Сообщений: 13
|
Здравствуйте!
Сделал форму on-line заказа в котором есть горизонтальный бегунок с текстовым полем - двигаешь бегунок, значение меняется от 0 - до 3млн рублей. Конечно значение меняется пропорционально значению _x бегунка, т.е где находится на горизонтальной линии бегунок, такое и значение (прошу прощенья что так подробно, просто чтобы понятно было). Бегунок двигается на линии от 0 до 300 пиксилей.Все нормально, НО, необходимо сделать, так чтобы значение текстового поля менялось по разному, в зависимости от нахождения бегунка, т.е от 0 - до 50 000 с интервалом в 1000, от 50 000 до 100 000 с интервалом в 10 000, от 100 000 до 500 000 с интервалом в 50 000 и т.д. до 3млн. Подскажите пожалуйста как этого можно добиться. Бегунок puck_mc, имя текстового поля совпадает с именем клипа slider и снабжается суффиксом _txt. Вот код: puck_mc.onPress = function(){
this.startDrag(true,0,0,300,0);
this.onMouseMove = _onMouseMove;
};
_onMouseMove = function(){
_parent[_name + "_txt"].text = this._x*10000;
updateAfterEvent();
};
_parent[_name + "_txt"].onChanged = function(){
puck_mc._x = Number(this.text);
};
puck_mc.onRelease = puck_mc.onReleaseOutside = function(){
this.stopDrag();
};
_parent[_name + "_txt"].onChanged();
спасибо большое. |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 13
|
Никто не подскажет? Возможно нужно какую-то мат.формулу прогрессии к значению _x. Помогите, наверняка сталкивался ктонибудь.
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Еслиб Вы подробно описали не что такое слайдер, а Вашу задачу - может кто и помог бы. Но Вы почемуто предпочли законччить "и т.д. до 3млн". Мало того, положение бегунка Вы измеряете не в пикселах, а в значении которое хотите получить - остроумно, но вот тому кто захотел бы это реализовать, непонятно.
Поэтому просто скажу что делать - смотрите положение бегунка, и если оно меньше такого-то но больше такого-то, округляете по шагу для этого интервала и умножаете его на столько-то .
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 13
|
Wolsh, прошу прощенья, что не так выразил свои мысли, однако вы все поняли верно.
Необходимо изменять значение текстового поля в зависимости от местоположения клипа puck_mc по x-координате. Чтобы при _x от 0 до 50 значение текстового поля изменялось с интервалом 1, при _x от 50 до 100 с интервалом 10, при _x от 100 до 300 с интервалом 50. Хочется понять принцип по которому это можно сделать, поэтому и написал и.т.д, чтоб не загружать мозг. Спасибо. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
И как Вы за 200 пикселов с шагом 50 дойдете до 3 000 000 ??? По описанной здесь схеме крайнее положение - 10550.
Добавлено через 26 минут Вот Вам вариант Вашей ф-ии, вроде понятно что я делаю, но значение тут доходит только до 2 805 550. Надоело подбирать, а математикой я не очень владею)))) Дальше сами. _onMouseMove = function(){
var sX:Number = this._x;
var kX:Number = this._x;
if(sX>50 && sX<=100)
{
kX=50+10*(sX-50);
}
if(sX>100 && sX<=150)
{
kX=550+100*(sX-100);
}
if(sX>150 && sX<=200)
{
kX=550+5000+1000*(sX-150);
}
if(sX>200 && sX<=250)
{
kX=550+5000+50000+5000*(sX-200);
}
if(sX>250)
{
kX=550+5000+50000+250000+50000*(sX-250);
}
_parent[_name + "_txt"].text = kX;
updateAfterEvent();
};
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:23. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|