PDA

Просмотр полной версии : Как сделать плавную прокрутку текста (не скролл)


dipstudio
19.05.2009, 14:06
Добрый день.
Стоит задача сделать автоматическую прокрутку текста из файлика. (как титры в конце фильмов)

1. флешка должна загружать текст из файла(текста в среднем до 50кб).
2. плавно прокручивать текст снизу вверх. (именно плавная прокрутка - чтобы текст читать по мере его прокрутки )

Проблема во втором пункте, когда текст заполняет всё экранное поле, начинаются жуткие тормоза, и проц на 100% загружен.

Методика такая:
3 фрейма:
1. создаем поле текстовое - загружаем текст из файла.
2. изменяем _y--;
3. возвращаемся на 2;

Как правильно решить поставленную задачу? И вообще можно ли её решить средствами Flash?

Заранее спасибо.

incorp
19.05.2009, 14:23
Возможно обычный твин даст нужный результат.

dipstudio
19.05.2009, 15:44
так дело в том что текстовый файлик будет постоянно меняться, и поэтому высота блока неизвестно и а значит и время на какое растягивать твин так же не известно.

ОльгаЮрьевна
19.05.2009, 15:51
... а если по формуле рассчитывать?... ну определять длину блока - реально, придумать коэффициент... ну в таком духе:)

nOobCrafter
19.05.2009, 16:10
var time:Number = txtBlock._height / 100 * 2;
для прокрутки чего то в 100 пикселей мы тратим 2 секунды

relevance4
19.05.2009, 19:28
разбей текст на части.
посчитай, сколько строчек влезает по высоте и сколько символов в строку, и на это количество дели.

Wolsh
19.05.2009, 21:34
Я бы битмапдату сделал с текстового поля, чтоб вектор не рендерить - будет и сглаженность, и плавность, и не будет тормозов. А твин можно легко заменить onEnterFrame, и зачем вообще нужен твин при движении с постоянной скоростью??

Mnilionic
19.05.2009, 22:06
присваиваем текст текстовому полю.
ставим полю автосайз.
замеряем высоту текстового поля и высоту маски.
Поверх текстового поля мувик-маска.
Катаем текстовое поле под маской с учётом замеров высот - всё ))

Если используются встроеные шрифты то гоним их в битмапу, как написал Wolsh.
или оборачиваем текстовое поле в мувик и ставим ему свойство кешАсБитмеп.