Форум 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=74869)

Leezard 30.01.2006 15:56

Строки в стринге!
 
Пытается сделатся вывод сообщений aka ConterStrike.
То есть в текстовое multiline поле выводятся сообщения, а потом они должны сдвигатся построчно. Верхняя (или нижняя) строчка при этом исчезают. Как в multiline поле вычленить строку? Можно сдвигать скроллом, но надо чтобы строки реально удалялись. Допоможите плиз.

Fl00r 30.01.2006 17:18

Код в 1 фрэйме;
Код:

_global.i = 1;
_global.j = 0;
_root.add_text = function(newText){
        for(k=1; k<=i; k++){
                _root["tf"+k]._y-=20;
        }
        this.createTextField("tf"+i, i, 0, 380, 550, 20);
        _root["tf"+i].text=newText;
        _global.i++;
}
_root.onEnterFrame = function(){
        if(Math.floor(j/50)<i-1){
                _global.j++;
                _root["tf"+Math.floor(j/50)].removeTextField();
        }
}

Код на кнопке
Код:

on(press, keyPress "<Enter>"){
        add_text(input_text.text);
}

на сцену вешаешь input TextField с InstanceName "input_text"

Fl00r 30.01.2006 17:23

Вот
 
Вложений: 1
исходник вообщем

silin 30.01.2006 17:49

Цитата:

Как в multiline поле вычленить строку?
вариант:
создаем временный текстфилд с autoSize=true и по нему смотрим сколько слов из основного текстфилда влезет по ширине, ну и удалим..
Код:

this.createTextField('_txt',0,0,0,180,140);
_txt.border=_txt.wordWrap=true;
_txt.text='То есть в текстовое multiline поле выводятся сообщения, а потом они должны сдвигатся построчно...'
TextField.prototype.delLine=function(){
        var tmp_txt=_root.createTextField('tmp',_root.getNextHighestDepth(),0,0,0,0,0);
        tmp_txt.autoSize=true;
        var words=this.text.split(' ');
        var i=0,s=tmp_txt.text;
        while(tmp_txt._width<this._width)        {
                s=tmp_txt.text;
                tmp_txt.text+=words[i++]+' ';
                tmp_txt.setTextFormat(this.getTextFormat());
        }
        this.text=this.text.split(s).join('');
        tmp_txt.removeTextField();
}
//повесим действие на клик       
onMouseUp=function(){
        _txt.delLine();
}


Ata 30.01.2006 18:28

2silin
_root.getNextHighestDepth() - у тебя в примере разлелось. это я на всякий случай, чтобы не писали - "не работает" :)

Fl00r 30.01.2006 18:35

silin,
надо чтобы текст появлялся снизу, и с каждой новйо строчки поднимался вверх.

Leezard 30.01.2006 18:50

Всем спасибо, решилось как всегда само,
по тику таймерА запускактся:

var indexc = chatText.indexOf("<br>");
chatText= chatText.slice(indexc+4,chatText.length);

Поле парсилось ака HTML
Просто думалось, что если в scroll есть понимание строки в текстовом поле, то может его можно как - то использовать.
Удаляет верхнее сообщение, что в принципе даже правильней чем отдельную строку.


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

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