Показать сообщение отдельно
Старый 15.05.2009, 16:11
safronov вне форума Посмотреть профиль Отправить личное сообщение для safronov Найти все сообщения от safronov
  № 12  
Ответить с цитированием
safronov

Регистрация: May 2009
Сообщений: 2
Тоже задавался этим вопросом, но так ответа в сети не нашел (может плохо искал, но по мне очень хорошо рыл), поэтому нарисовал свой метод (работает как в МПЦ и КМП):

Код AS1/AS2:
var FrameNumber: Number = new Number(5); // количество положений ползунка
var ShagFrame: Number;
ShagFrame=(Navigation.SampleSlider.track_mc._width-1)/(FrameNumber-1) //считаем шаг ползунка
 
 
Navigation.SampleSlider.polzun_mc.onPress = function(){
	var framePlus:Number = new Number(Math.round(Navigation.SampleSlider.polzun_mc._x/ShagFrame)); // переменная для проверки перехода на новое значение, изначально ползунок установлен в первое значение.
	//делаем ползуноковый регулятор SampleSlider: track_mc-линия по которой таскаем, polzun_mc- активный ползунок (делаем его прозрачным) и размещаем поверх Indikator (красивышный пассивный ползунок)
	this.startDrag(false,Navigation.SampleSlider.track_mc._x,this._y,Navigation.SampleSlider.track_mc._width,this._y);
	this.onEnterFrame = function () {
		var frame = Math.round(Navigation.SampleSlider.polzun_mc._x/ShagFrame); //вычисляем новое целое значение положения (изначально 1)
		if (framePlus!=frame) { //проверяем изменилось ли новое значение и если да ...
			 // впишем новое значение для проверочной переменной
        		Navigation.SampleSlider.Indikator._x=ShagFrame*frame; // двигаем на новое значение пассивный ползунок
	    		trace (173+frame);//проверим на какой фрейм попадем (у меня то что надо) :))
			gotoAndPlay(173+frame);
			framePlus=frame;
		}
	}
}
 
Navigation.SampleSlider.polzun_mc.onRelease =Navigation.SampleSlider.polzun_mc.onReleaseOutside = function(){
	Navigation.SampleSlider.polzun_mc._x=Navigation.SampleSlider.Indikator._x; // активный ползунок переместим на пассивный (он же прозрачный потом не найдем)
	this.stopDrag(); //убираем отработанный материал
	delete this.onEnterFrame;	
}
Может быть топорно, но мне кажется красивое и простое решение.
Дописываем, обсуждаем.

и для поиска: Перемещение с шагом, ползунковый регулятор с шагом (step), дискретный слайдер, пошаговый регулятор, дискретное перемещение


Последний раз редактировалось safronov; 16.05.2009 в 01:01.