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

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

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

Регистрация: Jun 2014
Сообщений: 52
По умолчанию Прокрутка текста, cacheAsBitmap

Перевел урок по прокрутке текста в динамическом поле с AS 3.0 на AS 2.0. Все получилось.
Вместо текстового поля аттачу небольшие мувики с текстовым полем в них. Если мувиков немного - все работает нормально. Если много - они исчезают или не работает маска. В справке нашел такое объяснение:
"Подложка (кэшированное растровое изображение) не создается даже в том случае, когда cacheAsBitmap присваивается значение true, если размер растрового изображения превышает 2880 в ширину или в высоту".
Как можно обойти это ограничение?
Здесь в коде я описал как пытался, что-то изобразить, но получается все равно только кое-что.
Код AS1/AS2:
import flash.geom.Rectangle;
quan = 160;
function creat() {
	this.createEmptyMovieClip("txt", this.getNextHighestDepth(), 0, 0);
	attachMovie("masker", "masker", this.getNextHighestDepth(), {_x:fonlist._x, _y:fonlist._y+2});
	masker.cacheAsBitmap = true;
	txt.cacheAsBitmap = true;
	txt.setMask(masker);
	masker._width = fonlist._width;
	masker._height = fonlist._height-3;
	for (i=0; i<=quan; i++) {
		txt.attachMovie("mc", "mc"+i, i, {_x:0, _y:i*15});
		txt["mc"+i].t.text = i;
	}
           if (txt._height<2800) {
		txt.scrollRect = new Rectangle(0, 0, txt._width, txt._height);
	} else {
		txt.scrollRect = new Rectangle(0, 0, txt._width, 15*20);
           //если в условие "высота 2880" контейнер не вписывается,
           //то я задаю предварительную небольшую его высоту, 15 - высота одного мувика
	}
}
creat();
//
function moveHandler() {
	var more = quan*txt.mc0._height-txt.mc0._height*20;
	txt.scrollRect = new Rectangle(0, 0, txt._width, more);
           //этими двумя строчками создаю контейнер по всей высоте мувика txt,
           //получается, но цифры в текстовых полях видны, а мувики пропадают,
           //кроме первого; также если добавить полоску выделения и возможность выбора,
           //то после клика на каком-либо мувике и фиксирования на нем полоски выделения,
           //при прокрутке вниз эта полоска не прячется под маску, хотя мувики под ней не видны
	var rect:Rectangle = txt.scrollRect;
	var percent:Number = scrollBar.scroller._y/(scrollBar.scrollLine._height-scrollBar.scroller._height)*(rect.height-masker._height);
	rect.y = percent;
	txt.scrollRect = rect;
}

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

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

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


 


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


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