| SunShadow |
24.10.2010 23:43 |
Какой-то странный TextFeld.
Здравствуйте коллеги.
Первый раз сталкиваюсь с таким глюком. У меня есть два текстовых поля, одно для ввода, второе для вывода сообщений. Я делаю следующее. Ввожу текст в инпут, далее по кнопке передаю его для вставки в новое поле. Перед этим обрезаю все не значащие символы в начале и конце сообщения. Далее полученный текст вставляется с последующей установкой TextFormat. При этом если в строке которую я передаю присутствуют символы переноса строки, у меня наблюдается смещение добавляемого текста, а старый текст затирается почему то. При этом формат текста тоже начинает плыть. Вот код при вставке который обрабатывает строку:
Код AS3:
var pattern:RegExp = /^\s*|\s*$/g;
msgTxt = msgTxt.replace(pattern, '');
Вот так я этот текст вывожу в TextField с именем tf
Код AS3:
var msg:Message = RStore.read(ChatConst.MSG_RECEIVE);
var textFormat:TextFormat = new TextFormat();
var idx:int = tf.length - 1 ;
var s:String;
if (msg.type == MessageType.SIMPLE) {
textFormat.underline = false;
textFormat.color = 0x004000;
textFormat.bold = true;
s = msg.nickName + ': ';
tf.appendText(s);
tf.setTextFormat(textFormat, idx, tf.length - 1);
idx = tf.length - 1;
textFormat.color = 0x000040;
s = msg.text + "\n";
tf.appendText(s);
tf.setTextFormat(textFormat, idx, tf.length - 1);
}
if (msg.type == MessageType.SYSTEM) {
s = msg.nickName + ': ' + msg.text + "\n";
textFormat.color = 0xFF0000;
textFormat.underline = true;
tf.appendText(s);
tf.setTextFormat(textFormat, idx, tf.length - 1);
}
}
Кто знает подскажите в чем может быть причина и как с этим бороться. Оба текстовых поля одинаковые, разница только в том что одно динамическое, а второе для ввода. Шрифты используются встроенные.
Забыл уточнить, fla в CS5, тип поля классический, а для компиляции использую проект FlashDevelop с подключением swc с данным текстовым полем
|