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

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

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

Регистрация: Jul 2005
Сообщений: 116
Question Скролл и отображение текста

У меня в скролле почемуто отображается только ограниченное количество текста. (Причем рисунки в контенте отображаются нормально независимо от размера скролла, а вот текст только до определенного места в текстовом поле.)

Как это исправить?

Вот код:

Код AS1/AS2:
// объявляем маску и скроллируемый клип
var maska:MovieClip = mask_mc;
var target:MovieClip = target_mc;
//устанавливаем размер и координаты "окошка". Эти параметры по желанию.
maska._width = target._width;
maska._height = 200
maska._x = 0
maska._y = 0
// совмещаем маску и таргет
target._x = maska._x;
target._y = maska._y;
target.setMask(maska);
// совмещаем скроллер и маску
scroller_mc._x = maska._x + maska._width;
scroller_mc._y = maska._y;
// cтроим-ресайзим скроллер
var track:MovieClip = scroller_mc.track_mc;
var pimp:MovieClip = scroller_mc.pimp_mc;
var top:MovieClip = scroller_mc.topbut_mc;
var down:MovieClip = scroller_mc.downbut_mc;
track._height = maska._height;
top._y = top._x = down._x = 0;
down._y = maska._height - down._height;
pimp._x = 0;
pimp._y = top._height;
// константы
var sh:Number = track._height; // высота скроллера (маски)
var dh:Number = down._height; // высота кнопки Вниз
var th:Number = top._height; // высота кнопки Вверх
var ph:Number = pimp._height; // высота бегунка
var pc:Number = pimp._height/2; // центр бегунка
var pimpway:Number = sh - dh - th - ph; // расстояние, на которое может смещаться бегунок 
var targetway:Number = target._height - sh; // расстояние, на которое должен смещаться таргет
var pimp_start:Number = th; // лимит смещения бегунка вверх
var pimp_stop:Number = th + pimpway; // лимит смещения бегунка вниз
// функция зависимости положения таргета от положения движка
function scrolling () {
	pimp._y = pimp._y < pimp_start ? pimp_start : pimp._y > pimp_stop ? pimp_stop : pimp._y;
	track_down._y = pimp._y + ph;
	track_down._height = sh - track_down._y - dh;
	track_top._height = pimp._y - th;
	var newtarget_y:Number = maska._y -(pimp._y-pimp_start)*(targetway/pimpway);
	pimp.onEnterFrame = function () {
		target._y = Math.ceil(target._y +(newtarget_y - target._y)/4);
		target._y == newtarget_y ? delete pimp.onEnterFrame : null;
	}
 
}
// драг бегунка
pimp.onPress = function () {
	this.startDrag(false,0,pimp_start,0,pimp_stop);
	this.onMouseMove = scrolling;
}
pimp.onRelease = pimp.onReleaseOutside = function () {
	this.stopDrag();
	delete this.onMouseMove;
}
// кнопки
top.onPress = function () {
	this.onEnterFrame = function () {
		pimp._y--;
		scrolling();
	}
}
top.onRelease = top.onReleaseOutside = function () {
	delete this.onEnterFrame;
}
down.onPress = function () {
	this.onEnterFrame = function () {
		pimp._y++;
 
		scrolling();
	}
}
down.onRelease = down.onReleaseOutside = function () {
	delete this.onEnterFrame;
}
// прокрутка колёсиком мыши
pimp.onMouseWheel = function(delta) {
	this._y -= delta;
	scrolling();
}
Mouse.addListener(pimp);
// создаем прозрачные кнопки трека (кнопки быстрой перемотки)
var track_top:MovieClip = scroller_mc.createEmptyMovieClip("tt",100);
with(track_top){
	moveTo(0,0); beginFill(0x00ff00, 0);
	lineTo(0,sh);
	lineTo(track._width, sh);
	lineTo(track._width,0); endFill();
	}
var track_down:MovieClip = track_top.duplicateMovieClip("td",110);
// размещаем кнопки трека
track_top._x = track_down._x = 0;
track_top._y = th; 
track_top._height = 0;
track_down._y = th + ph;
track_down._height = sh - th - dh - ph;
// нажатия на трек
track_top.onPress = function () {  // замедляющееся движение центра бегунка к мыши
	this.onEnterFrame = function () { // ускорение зависит от делителя
		pimp._y = Math.floor(pimp._y -(pimp._y + pc - scroller_mc._ymouse)/10);
		scrolling();
	}
}
track_top.onRelease = track_top.onReleaseOutside = function () {
	delete this.onEnterFrame;
}
track_down.onPress = function () { // замедляющееся движение центра бегунка к мыши
	this.onEnterFrame = function () { // ускорение зависит от делителя
		pimp._y = Math.ceil(pimp._y +(scroller_mc._ymouse - pimp._y - pc)/10);
		scrolling();
	}
}
track_down.onRelease = track_down.onReleaseOutside = function () {
	delete this.onEnterFrame;
}
// отменяем Руку на кнопках и бегунке
pimp.useHandCursor = false;
top.useHandCursor = false;
down.useHandCursor = false;
track_down.useHandCursor = false;
track_top.useHandCursor = false;
Спасибо


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

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

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


 


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


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