Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с прокруткой ОГРОМНОГО TextField (http://www.flasher.ru/forum/showthread.php?t=158313)

Samuraix 18.06.2011 03:09

Проблема с прокруткой ОГРОМНОГО TextField
 
Здравствуйте!
В Flash IDE сделан скрин с TextField, поверх которого маска + 2 кнопки "вверх" и "вниз". По нажатию на них текстфилд (он был изначально голый, но теперь обернут в MovieClip - ничего не поменялось) скроллится плавно по EnterFrame.
В текстовое поле динамически загружается нужный текст. Все работает гладко, пока в него не грузится огромный по размерам текст нужной мне оферты. По загрузки этой лабуды высота текстфилда, если верить трейсу его height становится почти 10,5 тысяч пикселей.
На ноуте, на котором я работаю это выливается в дикие тормоза при прокрутке. А вот за другими компами послабже - вообще не отображается текст.
Вопрос простой - чего делать, чтобы сохранить такую же прокрутку для такого здорового поля?

Спасибо.

З.Ы. не знаю, насколько это важно для решения проблемы, но текст забиваю в текстфилд через свойство html-текст, т.к. загружаемый текст размечен...

Gaen 18.06.2011 03:45

Хо-хо, такой огромный текст, да еще и с разметкой - тормоза гарантированы. Ради интереса выведите в трейс htmlText из текстового поля, увидите что флэш еще добавляет кучу оберточных тегов.
Выход - держать на сцене только тот текст, который виден через маску, по мере прокрутки убирая/доклеивая куски.

nOobCrafter 18.06.2011 04:12

Код AS3:

                /**
                The vertical position of text in a text field. The scrollV property is useful for
        directing users to a specific paragraph in a long passage, or creating scrolling text fields.
 
        The units of vertical scrolling are lines, whereas the units of horizontal scrolling are pixels.
        If the first line displayed is the first line in the text field, scrollV is set to 1 (not 0).
        Horizontal scrolling is measured in pixels because most fonts are proportionally
        spaced; that is, the characters can have different widths. Flash performs vertical scrolling by line
        because users usually want to see a complete line of text rather than a partial line.
        Even if there are multiple fonts on a line, the height of the line adjusts to fit the largest font in
        use.
                */

                public function get scrollV () : int;
                public function set scrollV (value:int) : void;

посмотрите в сторону этих св-в, там еще какието есть точно не помню, думаю поможет.

Samuraix 18.06.2011 13:33

Цитата:

Сообщение от Gaen (Сообщение 1004531)
Хо-хо, такой огромный текст, да еще и с разметкой - тормоза гарантированы. Ради интереса выведите в трейс htmlText из текстового поля, увидите что флэш еще добавляет кучу оберточных тегов.
Выход - держать на сцене только тот текст, который виден через маску, по мере прокрутки убирая/доклеивая куски.

Да-да, я трейсил итоговый html-текст. Там вообще капец..
Сейчас пробую сделать так: создал 9 символов, в каждом текстовое поле с кусками нужного текста, если их вместе вертикально сложить - получится нужная оферта. Хочу, чтобы по три максимум были одновременно видимы, при прокрутке удалять из отображения те, что не видимы в данный момент.. Если получится - отпишусь

Добавлено через 44 секунды
Цитата:

Сообщение от nOobCrafter (Сообщение 1004534)
Код AS3:

                /**
                The vertical position of text in a text field. The scrollV property is useful for
        directing users to a specific paragraph in a long passage, or creating scrolling text fields.
 
        The units of vertical scrolling are lines, whereas the units of horizontal scrolling are pixels.
        If the first line displayed is the first line in the text field, scrollV is set to 1 (not 0).
        Horizontal scrolling is measured in pixels because most fonts are proportionally
        spaced; that is, the characters can have different widths. Flash performs vertical scrolling by line
        because users usually want to see a complete line of text rather than a partial line.
        Even if there are multiple fonts on a line, the height of the line adjusts to fit the largest font in
        use.
                */

                public function get scrollV () : int;
                public function set scrollV (value:int) : void;

посмотрите в сторону этих св-в, там еще какието есть точно не помню, думаю поможет.

Да, спасибо.. Этими свойствами раньше пользовался, но с помощью них получается дерганая прокрутка.. А я плавную пытаюсь сделать.


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

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