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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.07.2005, 22:09
mixey_lv вне форума Посмотреть профиль Отправить личное сообщение для mixey_lv Найти все сообщения от mixey_lv
  № 1  
Ответить с цитированием
mixey_lv
 
Аватар для mixey_lv

Регистрация: Nov 2003
Адрес: Ирландия
Сообщений: 179
По умолчанию Cкролл html.text подгружаемого из xml

Как сделать скрол хтмл текстового поля?
Код:
on (mouseOver) {
     myText = myText.scroll + 1;
}
с этим кодом сдвигается на 1 и все...а хотелось бы чтоб пока кнопка нажата текст двигается.
И совсем шикарно, если подскажите как сделать bar для прокрутки.
Может кто-то делал, что-то подобное?

Старый 09.07.2005, 00:11
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
http://onorange.com/project/scroll/
спара код класса(копи пэйст)
как юзать классы можно прочесть в хелпе.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

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

Регистрация: Nov 2003
Адрес: Ирландия
Сообщений: 179
Можно в двущ словах описать принцип работы с классами?
Тот код, что справа надо в отдельний файл *.as запихнуть? А потом
Код:
#include "file.as"
?
можно образец плз. С классами никогда не работал, но знаю что давно пора начать!

Старый 09.07.2005, 06:13
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 4  
Ответить с цитированием
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Nirth - почитай Ru_Flash за последнюю неделю -
там Волков, который Антон, отлично написал
как мы на ровном месте любим всё усложнять -
подписываюсь под это дело однозначно и привожу
элементарный ответ на элементарный вопрос -

on (rollOver) {
this.createEmptyMovieClip('obr', this.getNextHighestDepth());
this.obr.onEnterFrame = function() {
this._parent.myText.scroll++;
};
}
on (rollOut) {
delete this.obr.onEnterFrame;
}

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

Регистрация: Nov 2003
Адрес: Ирландия
Сообщений: 179
VScroll.as:
Код:
[Event("onScroll")]
[Event("onDown")]
[Event("onUp")]
class main.VScroll {
	//Properties
	//:Objects
	//:TextField
	private var textF_txt:TextField;
	//::Movie Clips
	private var down_mc, up_mc, scrollBar_mc, scrollTrack_mc:MovieClip;
	//:Calculating
	private var visibleSrc_h, totalSrc_h, scrollTrack_h, scrollBar_h, scrollBarStartPosition:Number;
	private var lowerY:Numbe
	private var _coof:Number = 1;
	//:Events
	//::Mouse Events
	private var onMouseMove, onMouseWheel:Function;
	//::Key events
	private var onKeyDown:Function;
	//Methods
	//:Constructor
	public function VScroll(txt:TextField, scrollBar:MovieClip, scrollTrack:MovieClip, up:MovieClip, down:MovieClip) {
		this.init(txt, scrollBar, scrollTrack, up, down);
	}
	//:Initialization
	private function init(txt:TextField, scrollBar:MovieClip, scrollTrack:MovieClip, up:MovieClip, down:MovieClip):Void {
		//Link the components
		this.link(txt, scrollBar, scrollTrack, up, down);
		//Draw
		this.draw();
		this.scrollBar_mc._height = this.calculateHeights();
		//Manage elements
		this.__scrollBar();
		this.__scrollButtons();
		this.__wheel();
		this.__scrollTrack();
		this.__keyScroll();
		//Record start position
		this.scrollBarStartPosition = this.scrollBar_mc._y;
		//Add this object to the Mouse listeners
		Mouse.addListener(this);
		Key.addListener(this);
	}
	//:Main
	public function main(txt:TextField, scrollBar:MovieClip, scrollTrack:MovieClip, up:MovieClip, down:MovieClip):Void {
		this.init(txt, scrollBar, scrollTrack, up, down);
	}
	//:Main Methods
	//::Seting and Getting scrollCoof
	public function set coof(coof:Number) {
		this._coof = coof;
	}
	public function get coof():Number {
		return this.coof;
	}

	//::Setting and Getting current text field for scroll
	public function set scrollingText(txt:TextField):Void {
		this.textF_txt = txt;
		var scrollP = this.textF_txt.scroll;
		this.textF_txt.scroll = 1;
		this.scrollBar_mc._y = this.scrollBarStartPosition;
		this.calculateHeights();
		this.draw();
		this.textF_txt.scroll = scrollP;
		this.scrollBar_mc._y = this.scrollBarStartPosition + (scrollP * this.getPixels());
	}
	public function get scrollingText():TextField {
		return this.textF_txt;
	}
	//:Private Methods
	//::Calculate Heights
	private function calculateHeights():Number {
		this.scrollTrack_h = scrollTrack_mc._height;
		this.scrollBar_h = Math.round((this.visibleSrc_h * this.scrollTrack_h) / this.totalSrc_h);
		this.visibleSrc_h = this.textF_txt.bottomScroll;
		this.totalSrc_h = this.textF_txt.maxscroll + this.textF_txt.bottomScroll - this.textF_txt.scroll;
		this.lowerY = (this.scrollBarStartPosition + this.scrollTrack_h) - this.scrollBar_mc._height;
		return this.scrollBar_h;
	}
	//::Calculate pixels per line
	private function getPixels():Number {
		return this.scrollTrack_h / this.totalSrc_h;
	}
	//::Draw
	private function draw():Void {
		this.scrollBar_mc._height = this.calculateHeights();
	}
	//::Linking with objects on the Stage
	private function link(txt:TextField, scrollBar:MovieClip, scrollTrack:MovieClip, up:MovieClip, down:MovieClip):Void {
		this.textF_txt = txt;
		this.scrollBar_mc = scrollBar;
		this.scrollTrack_mc = scrollTrack;
		this.up_mc = up;
		this.down_mc = down;
	}
	//:::Bar scroll
	private function __scroll() {
		this.textF_txt.scroll = Math.round((this.scrollBar_mc._y - this.scrollBar_mc.scroller.scrollBarStartPosition) * (this.textF_txt.maxscroll - 1) / (this.scrollTrack_h - this.scrollBar_h) + 1);
		//TODO events
	}
	//Scrolling up and down
	private function __moveBar(down:Boolean, coof:Number):Void {
		var speed:Number = this.getPixels() * coof;
		if (!down) {
			speed *= (-1);
		}
		this.scrollBar_mc._y += speed;
		this.__scroll();
		//TODO fix this bug with this.lowerY
		this.lowerY = (this.scrollBarStartPosition + this.scrollTrack_h) - this.scrollBar_mc._height;
		if (this.scrollBar_mc._y < this.scrollBarStartPosition) {
			this.scrollBar_mc._y = this.scrollBarStartPosition;
		} else if (this.scrollBar_mc._y > this.lowerY) {
			this.scrollBar_mc._y = this.lowerY;
		}
	}
	//::Manage the elements
	//:::scroll Bar
	private function __scrollBar():Void {
		//Pass properties to the MovieClip
		this.scrollBar_mc.scroller = this;
		this.scrollBar_mc.onPress = function() {
			this.startDrag(false, this._x, this.scroller.scrollBarStartPosition, this._x, this.scroller.scrollBarStartPosition + (this.scroller.scrollTrack_mc._height - this._height));
			this.onMouseMove = function() {
				this.scroller.__scroll();
				updateAfterEvent();
			};
		};
		this.scrollBar_mc.onRelease = function() {
			this.stopDrag();
			delete this.onMouseMove;
		};
	}
	//:::Scrolling Buttons
	private function __scrollButtons():Void {
		//passing the propetries
		this.up_mc.scroller = this.down_mc.scroller = this;
		//up button
		this.up_mc.onPress = function() {
			this.onEnterFrame = function() {
				this.scroller.__moveBar(false, 1);
			};
		};
		//down
		this.down_mc.onPress = function() {
			this.onEnterFrame = function() {
				this.scroller.__moveBar(true, 1);
			};
		};
		//delete
		this.down_mc.onReleaseOutside = this.down_mc.onRelease = this.up_mc.onRelease = this.up_mc.onReleaseOutside = function () {
			delete this.onEnterFrame;
		};
	}
	//:::Mouse Wheel
	private function __wheel():Void {
		this.onMouseWheel = function(delta:Number) {
			//check the direction
			if (delta > 0) {
				this.__moveBar(false, 1);
			} else {
				this.__moveBar(true, 1);
			}
		};
	}
	//:::Scroll  Track
	private function __scrollTrack():Void {
		this.scrollTrack_mc.scroller = this;
		this.scrollTrack_mc.onPress = function() {
			this.onEnterFrame = function() {
				if (this.scroller.scrollBar_mc._y > _root._ymouse) {
					this.scroller.__moveBar(false, 1);
				} else if ((this.scroller.scrollBar_mc._y + this.scroller.scrollBar_mc._height) < _root._ymouse) {
					this.scroller.__moveBar(true, 1);
				}
			};
		};
		this.scrollTrack_mc.onRelease = this.scrollTrack_mc.onReleaseOutside = function () {
			delete this.onEnterFrame;
		};
	}
	//:::Key Scrolling
	private function __keyScroll():Void {
		this.onKeyDown = function() {
			switch (Key.getCode()) {
			case Key.DOWN :
				this.__moveBar(true, 1);
				break;
			case Key.UP :
				this.__moveBar(false, 1);
				break;
			}
		};
	}
}
Затем просто нажимаю кнопку форматирования и мне выдает ошибки:
Код:
**Error** C:\Documents and Settings\me\My Documents\! FLASH 2005 SUMMER\Useful tips\scroll class\VScroll.as: Line 4: The class 'main.VScroll' needs to be defined in a file whose relative path is 'main\VScroll.as'.
     class main.VScroll {

**Error** C:\Documents and Settings\me\My Documents\! FLASH 2005 SUMMER\Useful tips\scroll class\VScroll.as: Line 14: The class 'Numbe' could not be loaded.
     	private var _coof:Number = 1;

Total ActionScript Errors: 2 	 Reported Errors:
где можно почитать про работу с классами?
хелп плз

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

Регистрация: Nov 2003
Адрес: Ирландия
Сообщений: 179
кто знает в чём проблема....?
может кто-нибудь попробовать на своем флэше?

Старый 12.07.2005, 13:10
dilsh вне форума Посмотреть профиль Отправить личное сообщение для dilsh Посетить домашнюю страницу dilsh Найти все сообщения от dilsh
  № 7  
Ответить с цитированием
dilsh

Регистрация: Jan 2004
Адрес: ЮК
Сообщений: 172
а я так делаю
это код на нижней кнопке
Код:
on (press) {
	interval = setInterval(function () {
		txtname.scroll++;
	}, 30);
}
on (release) {
	clearInterval(interval);
}

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

Регистрация: Nov 2003
Адрес: Ирландия
Сообщений: 179
а как скролл бар к этому добавить?
мне кажется лучший способ всё-таки использовать какой-нибудб класс. главное найти подходящий.

Старый 12.07.2005, 15:23
dilsh вне форума Посмотреть профиль Отправить личное сообщение для dilsh Посетить домашнюю страницу dilsh Найти все сообщения от dilsh
  № 9  
Ответить с цитированием
dilsh

Регистрация: Jan 2004
Адрес: ЮК
Сообщений: 172
это мой случай
для кнопок вверх и вниз (вверх надо ++ на -- заменить)

scbutton это имя скрола

Код:
on (press) {
	interval = setInterval(function () {
		txtname.scroll++;
		pol = ((_global.scbot-_global.sctop)/(txtname.maxscroll))*(txtname.scroll)+_global.sctop;
		scbutton._y = pol;
	}, 30);
}
on (release) {
	clearInterval(interval);
}
на скролбаре (мувик)
Код:
on (press) {
	startDrag(scbutton, false, 634, 21, 634, 371);
	_global.onbutton = true;
}
on (release) {
	stopDrag();
	_global.onbutton = false;
}
в каком нибудь мувике
Код:
onClipEvent (enterFrame) {
	this.onMouseMove = function() {
		if (_global.onbutton) {
			pol = int((this._parent.scbutton._y-_global.sctop)/((_global.scbot-_global.sctop)/(this._parent.txtname.maxscroll+1)));
			trace(pol);
			this._parent.txtname.scroll = pol;
		}
	};
}
на первом кадре

Код:
_global.sctop = 21;
_global.scbot = 371;
_global.onbutton = false;
может замутил
но все работает и зато свое в ручную

хотите могу выложить исходник, в принципе это флашка которая загружает внешний htm и если содержание не помещается то появляется скрол с кнопками, если помещается то они становятся невидимыми

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

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

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


 


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


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