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

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

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

Регистрация: Nov 2008
Сообщений: 13
Attention Значение текстового поля, slider.

Здравствуйте!
Сделал форму 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();
и исходник,
спасибо большое.
Вложения
Тип файла: rar on-line.rar (5.4 Кб, 42 просмотров)

Старый 19.05.2009, 14:01
Const. вне форума Посмотреть профиль Отправить личное сообщение для Const. Найти все сообщения от Const.
  № 2  
Ответить с цитированием
Const.

Регистрация: Nov 2008
Сообщений: 13
Никто не подскажет? Возможно нужно какую-то мат.формулу прогрессии к значению _x. Помогите, наверняка сталкивался ктонибудь.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Еслиб Вы подробно описали не что такое слайдер, а Вашу задачу - может кто и помог бы. Но Вы почемуто предпочли законччить "и т.д. до 3млн". Мало того, положение бегунка Вы измеряете не в пикселах, а в значении которое хотите получить - остроумно, но вот тому кто захотел бы это реализовать, непонятно.
Поэтому просто скажу что делать - смотрите положение бегунка, и если оно меньше такого-то но больше такого-то, округляете по шагу для этого интервала и умножаете его на столько-то .
__________________
Reality.getBounds(this);

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

Регистрация: Nov 2008
Сообщений: 13
Wolsh, прошу прощенья, что не так выразил свои мысли, однако вы все поняли верно.
Необходимо изменять значение текстового поля в зависимости от местоположения
клипа puck_mc по x-координате.
Чтобы при _x от 0 до 50 значение текстового поля изменялось с интервалом 1, при _x от 50 до 100 с интервалом 10, при _x от 100 до 300 с интервалом 50.
Хочется понять принцип по которому это можно сделать, поэтому и написал и.т.д, чтоб не загружать мозг. Спасибо.

Старый 19.05.2009, 15:29
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 5  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: 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, время: 15:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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