Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Тормоза при включении форматной выключки. (http://www.flasher.ru/forum/showthread.php?t=82207)

pkfun 07.07.2006 00:31

Тормоза при включении форматной выключки.
 
В восьмом флэше появилась возможность задавать форматную выключку для динамического текста.
Код:


poleTwo.createTextField("news", news.getNextHighestDepth(), 250, 83, 590, 472);
        poleTwo.news.multiline = true;
        poleTwo.news.wordWrap = true;
        poleTwo.news.html = true;
        poleTwo.news.setNewTextFormat(new TextFormat("_sans", 14, null, null, null, null, null, null, "justify", null, null, null, 2));

Я обратил внимание на чрезмерную "прожорливость" этой выключки в плане ресурсов системы: выключка влево потребляет прим. в два, три раза меньше ресурсов(смотрел в Win Task Manager).
Вопрос такой: это у всех так или я что-то неправильно делаю? Можно ли как-нибудь уменьшить аппетит этой функции?

etc 07.07.2006 01:51

Скорее антиалиасинг восьмерки жрет, а не выключка

kayama 07.07.2006 10:36

Именно. Если текст стоит for Readability - будет неплохой тормоз, ставишь for animation - текст гладится корявее, но тормозов не будет.

pkfun 07.07.2006 13:44

У меня в коде указано, что шрифт "_sans". Это системный шрифт. Для системных шрифтов, что тоже сглаживание работает? Там даже нет выбора вида сглаживания для device fonts. :)
Интересно получается: для выключки влево сглаживание не работает или работает, но потрабляет немного ресурсов. А для форматной запускается на полную катушку? Что-то здесь не сходится. Я проверял все доступные виды выключки - тормоза только с форматной.

etc 07.07.2006 14:45

pkfun, выложи пример.

iNils 07.07.2006 14:53

Может я чего то не понимаю, но у меня этот код всегда генерился чуть более секунды, и не важно justify или left, Arial или _sans, embedFonts или нет.
Код:

t1 = getTimer ();
for (var i = 0; i < 100; i++) {
        this.createTextField ("txt", 0, 250, 83, 200, 472);
        this.txt.multiline = true;
        this.txt.wordWrap = true;
        this.txt.html = true;
//        this.txt.embedFonts = true
        this.txt.setNewTextFormat (new TextFormat ("Arial", 14, null, null, null, null, null, null, "justify", null, null, null, 2));
        this.txt.text = "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
        this.txt.text += "asdfasdf asdf asdfas df asdfasdfasd fa sdf asdf  asd fas d f as";
}
trace (getTimer () - t1);


etc 07.07.2006 14:59

Дело не в генерации, а в самой работе и потребляемом процессорном времени...
Хотя, на голом текстовом поле разница неощутима, нужен пример, где это заметно.

iNils 07.07.2006 15:05

Ну тогда ждем примера.

pkfun 07.07.2006 15:58

Подготовлю и выложу пример.

iNilis
Нет, я не имел ввиду время построения поля с текстом. Вероятно просто я дал не точную информацию. :) Я имею ввиду то как скролится( прокручивается) текст с разными видами выключки. С форматной он прокручивается с тормозами. С другими без.
Я понимаю, что важно еще что за текст. В данном случае я использовал один и тот же текст и крутил его и смотрел на загрузку процессора. При форматной выключке( текст один и тот же) загрузка гораздо больше.
Вобщем, подготавливаю пример. Пример будет под флэш 8.

pkfun 07.07.2006 18:20

Пример.
 
Вложений: 1
Вложение 14685

Пример находится в раре. Размер 32 кило. После распаковки откройте папку test и запустите файл test1.swf или(лучше) test1.fla

Коротко объясню структуру текста:
- сам текст берется из файла his/his003/his003.txt Tекст отформатирован с использованием флэшевской html разметки;
- в текст вставлены картинки. Картинки вставляются в виде внешних swf, которые лежат в папке his/his003( в примере есть swf варианты);
- внешние swf сами по себе не содержат файлы картинок. Сами изображения грузятся по ссылкам с сервера. Эти ссылки на изображения находятся в файле his/his003/hisPics003.txt;
- если будете запускать сразу test1.swf, то картинки не загрузятся. Поэтому запускайте лучше fla вариант. И еще лучше чтобы при запуске файла вы были в инете( а то картинки не загрузятся).

Скроллера нет, но я прокручивал с помощью стрелок вверх/вниз. Надо щелкнуть по текстовому полю, нажать стрелку вниз/вверх и немного подождать.
Меняйте выключку, смотрите результаты.


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

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