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

Регистрация: Dec 2013
Сообщений: 49
Буквально вчера думал как сделать скроллинг контента без компонента с полоской и что бы в AIR работал)

Код AS3:
public var slide_size:Number = 1070;  // размер области для показа
Код AS3:
 
conteiner_items = new Sprite;
conteiner_items.x = 30;
conteiner_items.y = 250;
conteiner_items.scrollRect = new Rectangle(0,0, slide_size, 280);
addChild(conteiner_items);
// Создаем врапер именно его мы и будем двигать
conteiner_wpare= new Sprite;
conteiner_items.addChild(conteiner_wpare);
 
// Это рисуем полостку
var bar:Sprite = new Sprite;
bar.graphics.beginFill(0x474747);
bar.graphics.drawRect(0, 0, slide_size, 10);
bar.graphics.endFill();
bar.y =  260;
conteiner_items.addChild(bar);
// Русуем бегунок
slider = new Sprite;
slider.graphics.beginFill(0xFFFFFF);
slider.graphics.drawRect(0, 0, 100 , 10);
slider.graphics.endFill();
slider.y = 260;
conteiner_items.addChild(slider);
 
addEventListener(Event.ADDED_TO_STAGE, onAddedStage);
onAddedStage
Код AS3:
/**
 * 
 * @param	e
 */
private function onAddedStage(event:Event):void 
{
	removeEventListener(Event.ADDED_TO_STAGE, onAddedStage);	
        //За контейнер двигать удобнее на телефоне для десктопа за ползунок итд.
	//conteiner_wpare.addEventListener(MouseEvent.MOUSE_DOWN, onMouseSliderDown);
	slider.addEventListener(MouseEvent.MOUSE_DOWN, onMouseSliderDown);
	stage.addEventListener(MouseEvent.MOUSE_UP, onMouseSliderUp);
}
Код AS3:
		/**
		 * 
		 * @param	event
		 */
		public function onMouseSliderDown(event:Event)
		{
			slider.startDrag (false, new Rectangle(0,260, slide_size-slider.width, 0));
			slider.addEventListener(Event.ENTER_FRAME, onEnterFrameDrag);
		}
 
		public function onMouseSliderUp(event:Event)
		{
			slider.stopDrag();
			slider.removeEventListener(Event.ENTER_FRAME, onEnterFrameDrag);
		}
 
                // Тот самый метод где я двигаю контенер
		/**
		 * 
		 * @param	e
		 */
		private function onEnterFrameDrag(e:Event)
		{
			conteiner_wpare.x =  -((Math.abs(conteiner_wpare.x - slider.x)/slide_size)*(conteiner_wpare.width-slide_size))
		}
PS этот скрол делался для горизонтального передвижения контента, для вертикального нужно просто поменять ширину на высоту.

Добавлено через 2 минуты
За был сказать, то что мы хотим двигать нужно положить в conteiner_wpare что бы увеличить ширину контейнера.