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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.11.2012, 19:05
Nickolai вне форума Посмотреть профиль Отправить личное сообщение для Nickolai Найти все сообщения от Nickolai
  № 1  
Ответить с цитированием
Nickolai
[+6 15.11.12]

Регистрация: Oct 2012
Сообщений: 63
По умолчанию Полоса прокрутки

Всем доброго вечера. У меня такой вопрос: как сделать во флэше полосу прокрутки. Скажем у меня есть приложение размером 800 на 600 пх, но у меня есть контент размером 800 на 1000 пх как мне сделать так чтобы если размер контента больше размера приложения то появлялась полоса прокрутки? Буду очень признателен.

Старый 07.11.2012, 19:16
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 2  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Решения "в лоб":

1. Кладем весь контент в спрайт и прогаем поведение скроллбара в приложении.

2. Ищем в гугле уже готовые скроллбары, разбираемся с тем, как они работают, выбираем подходящий и используем его.
__________________
hauts.ru

Старый 07.11.2012, 20:43
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 3  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Ничего искать не надо, у меня отличный скроллер берем На данный момент учитывает ВСЕ пожелания - mouseWheel тоже )))

Код AS3:
package com.in4core.navigation 
{
	import com.greensock.TweenMax;
	import flash.display.DisplayObject;
	import flash.display.DisplayObjectContainer;
	import flash.display.Sprite;
	import flash.errors.IllegalOperationError;
	import flash.events.MouseEvent;
	import flash.geom.Rectangle;
	import flash.text.TextField;
	/**
	 * ...
	 * @author in4core
	 * Display or Text Object Scroller
	 * use addScroll methods to define Scroller
	 * Version 1.0
	 */
	public final class UIScrollBar 
	{	
		//-----------------DisplayObjectInit-----------//
		/*objects*/
		private var _scroll:Sprite;
		private var _maskHeight:int;
		private var _content:DisplayObjectContainer;
		private var _rect:Rectangle;
 
		/*coords*/
		private var _startYScroll:int;
		private var _startYContent:int;
		private var _wayOfScroll:int;
 
		//-----------------TextFieldInit-----------//
 
		/*objects*/
		private var _tscroll:Sprite;
		private var _tf:TextField;
		private var _trect:Rectangle;
 
		/*coords*/
		private var _wayOfTextScroll:int;
		private var _delta:int;
 
		/////////////////////////////////////////////////////////////////////
		//!4
		//!  4                       PUBLIC
		//!    4                                                           
		/////////////////////////////////////////////////////////////////////
 
		public function addScrollObject( scroll:Sprite,maskHeight:int,content:DisplayObjectContainer,way:int ):void {
 
			this._scroll = scroll;
			this._maskHeight = maskHeight;
			this._content = content;
			this._wayOfScroll = way;
			this._startYScroll = _scroll.y;
			this._startYContent = _content.y;
			this._rect = new Rectangle(_scroll.x, _scroll.y, 0, _wayOfScroll);
 
			/*events*/
			if (!_scroll.stage) throw new IllegalOperationError ( ' Before add Scroll - add you Scroll on DisplayList by addChild ');
 
			_scroll.addEventListener(MouseEvent.MOUSE_DOWN, dragStart);
			_scroll.stage.addEventListener(MouseEvent.MOUSE_UP, dragStop);
 
			//trace( 'UIScrollBar-Display : INIT' );
		}
 
		public function addScrollText( tf:TextField , scroll:Sprite , way:int ):void {
 
			this._tscroll = scroll;
			this._tf = tf;
			this._wayOfTextScroll = way;
			this._trect = new Rectangle(_tscroll.x, _tscroll.y, 0, _wayOfTextScroll);
 
			/*events*/
			if (!_tscroll.stage) throw new IllegalOperationError ( ' Before add Scroll - add you Scroll on DisplayList by addChild ');
 
			_tscroll.addEventListener(MouseEvent.MOUSE_DOWN , tdragStart);
			_tscroll.stage.addEventListener(MouseEvent.MOUSE_UP , tdragStop);
 
			//trace( 'UIScrollBar-Text : INIT' );
		}
 
		public function destroy():void {
 
			if (_scroll != null ) {
 
				_scroll.stage.removeEventListener(MouseEvent.MOUSE_MOVE, updatePosition);
				_scroll.removeEventListener(MouseEvent.MOUSE_DOWN, dragStart);
				_scroll.stage.removeEventListener(MouseEvent.MOUSE_UP, dragStop);
				_scroll.stage.removeEventListener(MouseEvent.MOUSE_WHEEL , onWheel);
			}
 
			if (_tscroll != null ) {
 
				_tscroll.removeEventListener(MouseEvent.MOUSE_DOWN , tdragStart);
				_tscroll.stage.removeEventListener(MouseEvent.MOUSE_UP , tdragStop);
				_tscroll.stage.removeEventListener(MouseEvent.MOUSE_MOVE ,updateTextPosition);
			}
 
			TweenMax.killTweensOf(_content);
 
		}
		/////////////////////////////////////////////////////////////////////
		//!4
		//!  4                       PRIVATE
		//!    4                                                           
		/////////////////////////////////////////////////////////////////////
		private function tdragStart(e:MouseEvent):void {
 
			_tscroll.startDrag(false, _trect);
			_tscroll.stage.addEventListener(MouseEvent.MOUSE_MOVE ,updateTextPosition);
		}
 
		private function tdragStop(e:MouseEvent):void {
 
			_tscroll.stopDrag();
			_tscroll.stage.removeEventListener(MouseEvent.MOUSE_MOVE ,updateTextPosition);
		}
 
		private function dragStart(e:MouseEvent):void {
 
			_scroll.startDrag(false, _rect);
			_scroll.stage.addEventListener(MouseEvent.MOUSE_MOVE, updatePosition);
 
		}
 
		private function dragStop(e:MouseEvent):void {
 
			_scroll.stopDrag();
			_scroll.stage.removeEventListener(MouseEvent.MOUSE_MOVE, updatePosition);
		}
 
		public function updatePosition (e:MouseEvent):void {
 
			if (_maskHeight < _content.height)
			{
				var yy:int = _startYContent - ( (_content.height - _maskHeight) / _wayOfScroll ) * ( _scroll.y - _startYScroll );
 
				TweenMax.to(_content , 1 , { y:yy } );
			}
		}
 
		private function updateTextPosition(e:MouseEvent):void {
 
			_tf.scrollV = Math.round(((_tscroll.y - _trect.y) / _wayOfTextScroll ) * _tf.maxScrollV);
		}
 
		public function trueScroll():Boolean {
 
			if (_maskHeight < _content.height) return true;
			return false;
		}
 
		public function useWheel(delta:int = 4):void
		{
			_delta = delta;
			_scroll.stage.addEventListener(MouseEvent.MOUSE_WHEEL , onWheel);
		}
 
		private function onWheel(e:MouseEvent):void 
		{
			_scroll.y = _scroll.y - e.delta * _delta;
 
			if (_scroll.y < _startYScroll) _scroll.y = _startYScroll;
			else if (_scroll.y > _wayOfScroll + _startYScroll) _scroll.y = _wayOfScroll + _startYScroll;
 
			updatePosition(null);
		}
 
	}
 
}
__________________
Марк Tween

Старый 07.11.2012, 21:01
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS3:
if (!_scroll.stage) throw new IllegalOperationError ( ' Before add Scroll - add you Scroll on DisplayList by addChild ');
Честно говоря, я боюсь смотреть остальное из пакета com.in4core
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Последний написанный мной скроллер вообще ничего не знал о скроллируемом объекте, что позволяло использовать его в любой ситуации — для текста, для таргета под маской, для таргета со скроллРектом.. Удобно, но требует дополнительного кода вне скроллера. Зато в этом то и свобода))) ООП, чтоб его..
__________________
Reality.getBounds(this);

Старый 07.11.2012, 21:03
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 6  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Код AS3:
if (!_scroll.stage) throw new IllegalOperationError ( ' Before add Scroll - add you Scroll on DisplayList by addChild ');
Не боись, мне просто лень почему то было аддед ту стейдж делать раньше, ясное дело мой косяк, глуп был зелен))) Так что, это стоит заменить, в блоге я об этом указал
__________________
Марк Tween

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Мне не так страшно получить IllegalOperationError, как прочитать текст этой ошибки: "Before add Scroll - add you Scroll".....
__________________
Reality.getBounds(this);

Старый 07.11.2012, 21:28
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 8  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
Мне не так страшно получить IllegalOperationError, как прочитать текст этой ошибки: "Before add Scroll - add you Scroll".....
текст тоже гениален я понимаю))) Но к теме это не относится, это холивар уже, решение, причем работающее и хорошее - я дал
__________________
Марк Tween

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

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

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


 


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


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