Форум 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)
-   -   Ограничение input-text (http://www.flasher.ru/forum/showthread.php?t=90263)

Ksюta 06.01.2007 20:48

Ограничение input-text
 
Перелопатила весть поиск, но так и не разобралась. Как мне сделать так чтобы поле ввода ограничивалось размерами текст-бокса? То есть дошел до конца и дальше не печатает. Ну или хотя бы ввести ограничение на кол-во строк что ли...
Нашла в архиве вот такой скрипт:
Код:

var a_txt:TextField = _root.createTextField("a_txt", 0, 0, 0, 200, 100);
var tf:TextFormat = new TextFormat();
tf.size = 20;
tf.font = "_sans";
a_txt.border = true;
a_txt.multiline = true;
a_txt.type = "input";
a_txt.borderColor = 0x000000;
a_txt.wordWrap = true;
a_txt.onChanged = function() {
a_txt.setTextFormat(tf);
if (this.maxscroll>1) {
for (i=0; i<this.length; ) {
this.text = this.text.substring(-1, this.text.length-1);
trace(this.text);
if (checkLength(this.text, this)) {
break;
}
i++;
}
}
};
function checkLength(_str:String, _txt:TextField):Boolean {
_txt.text = _str;
_txt.setTextFormat(_root.tf);
if (_txt.maxscroll>1) {
return false;
} else {
return true;
}
}

Но у меня он не работает вообще, только курсор изменяется над зоной и больше ничего не происходит. Совсем запуталась.

BigDan 06.01.2007 21:01

читай про maxChars

Ksюta 06.01.2007 21:09

Вот из хелпа - maxChars
Property; the maximum number of characters that the text field can contain.

Это ж про символы, а мне не символы нужно ограничить а строки или поле само. В нашем языке символы имеют разную ширину, поэтому текст с одним и тем ж кол-вом символов может занимать очень разное кол-во строк, так что это не подходит.

BigDan 06.01.2007 21:19

тогда читай про символы перевода на новую строку \r \n

iNils 06.01.2007 21:38

Цитата:

Сообщение от BigDan
тогда читай про символы перевода на новую строку \r \n

Причем тут это?

Код:

var txt:TextField = this.createTextField ("txt", 0, (Stage.width - 50) / 2, (Stage.height - 20) / 2, 50, 20);
var str:String = "";
txt.border = true;
txt.type = "input";
txt.onChanged = function () {
        if (this._width - 4 <= this.textWidth || txt.hscroll > 0) {
                txt.hscroll = 0;
                this.text = str;
        } else {
                str = this.text;
        }
        trace (this._width + " " + this.textWidth);
};


Ksюta 06.01.2007 21:52

iNils, спасибо, но не работает.
Отчаянно пытаюсь включиться... Может 7-ой flash устарел для него?
Насколько я поняла он должен ставиться в фрейм сцены и автоматом создавать текст. поле по заданным параметрам, но выдает пустой экран.

iNils 06.01.2007 21:57

Если семерка то надо в первой строке удалить:
Код:

var txt:TextField =
То что дальше оставить

Ksюta 06.01.2007 22:02

iNils, сенкс! Так работает даже код из моего первого поста, оказывается всё дело было в этой строчке.


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

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