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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.09.2006, 15:33
Whim вне форума Посмотреть профиль Отправить личное сообщение для Whim Найти все сообщения от Whim
  № 11  
Ответить с цитированием
Whim

Регистрация: Jun 2006
Сообщений: 56
Цитата:
Сообщение от motor4ik
резвая у вас мышка )

Старый 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.
Старый 15.05.2009, 18:16
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 13  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Мой вариант:
Код:
mc1_mc.onPress = function() {
	this.startDrag(false, 0, 0, 500, 0);
};
mc1_mc.onRelease = mc1_mc.onReleaseOutside=function () {
	var myStep = 50;
	this.stopDrag();
	this._x = roundAfteAddStep(this._x, myStep);
};
function roundAfteAddStep(par1, par2) {
	return par2*Math.round(par1/par2);
}
ЗЫ
Это 1000-е мое сообщение
Вложения
Тип файла: rar 11.rar (5.6 Кб, 41 просмотров)

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

Регистрация: May 2009
Сообщений: 2
Жень Шень, спасиб. Чуть подправил твой исходник и свой проект.
Вложения
Тип файла: zip 00.ZIP (6.3 Кб, 50 просмотров)

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:00.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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