Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   форматирование текста (http://www.flasher.ru/forum/showthread.php?t=97008)

toneea 12.06.2007 05:58

форматирование текста
 
как разместить текст (привязанный из файла тхт) в две колонки, чтобы он перетекал из одной в другую?

iNils 12.06.2007 07:00

Только вручную. Надо создать два текстовых поля. Например txtA и txtB. И с помощью следущего класса
Код:

/**
* @author iNils
* @version 1.0
*
* Класс TextSetColumn позволяет заполнить несколько текстовых поляй текстом, имитирую колоночный текст.
*/

class ru.inils.text.TextSetColumn {
        /**
        * Метод, заполняющий колонки текстом.
        * Метод работает только с обычным (не html) текстом.
        *
        * @param        str - Текст, которым необходимо заполнить колонки
        * @param        array - Массив, содержащий ссылки на текстовые поля (колонки)
        * @return        String - Остаток невместившегося текста. Если помеcтился весь текст, то результатом будет null.
        */
        public static function setText (str:String, array:Array):String {
                var arrayText:Array = str.split (" ");
                var n:Number = 0;
                var dx:Number = 0;
                var strTemp:String = "";
                var strBuffer:String = "";
                for (var i:Number = 0; i < arrayText.length; i += dx++) {
                        strTemp = array[n].text;
                        strBuffer = "";
                        for (var j:Number = i; j < i + dx; j++) {
                                if (j == arrayText.length) {
                                        break;
                                }
                                strBuffer += arrayText[j] + (j < arrayText.length - 1 ? " " : "");
                        }
                        array[n].text += strBuffer;
                        if (array[n].textHeight > array[n]._height - 4 && dx > 1) {
                                array[n].text = strTemp;
                                dx = 0;
                        } else if (array[n].textHeight > array[n]._height - 4) {
                                array[n++].text = strTemp;
                                if (array[n]) {
                                        i--;
                                } else {
                                        return str.substring (array[n - 1].text.length);
                                }
                        }
                }
                return null;
        }
}

разбить текст по колонкам
Код:

import ru.inils.text.TextSetColumn;
TextSetColumn.setText ('Роберт Кубица выписался из монреальского госпиталя Sacre-Couer и надеется принять участие в Гран При США...\nРоберт Кубица: "Вы видите (обращаясь к журналистам), я в хорошей форме, жив, здоров и общаюсь с вами. Я хорошо себя чувствую, в Канаде мне действительно повезло — я посмотрел запись аварии, она выглядит гораздо серьезнее, чем я мог себе представить. Травм нет и в конце недели я надеюсь выйти на старт гонки в Индианаполисе".', [txtA, txtB]);



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

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