Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.05.2013, 23:14
TuMko вне форума Посмотреть профиль Отправить личное сообщение для TuMko Найти все сообщения от TuMko
  № 11  
Ответить с цитированием
TuMko

Регистрация: May 2013
Сообщений: 26
Termin, спасибо, учту.
Idon'tKnow, спасибо большое, работает.

Старый 31.05.2013, 23:47
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 12  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Idon'tKnow, оно позволяет через ctrl-v и прочие аналоги вставки добавить гораздо больше (добавление атомарное). Поэтому нужно учитывать размер текущего выделения и размер вставляемого текста. А лучше все-таки использовать defaultTextFormat и предоставить полю самому за maxChars следить.

Старый 01.06.2013, 01:39
Idon'tKnow вне форума Посмотреть профиль Отправить личное сообщение для Idon'tKnow Найти все сообщения от Idon'tKnow
  № 13  
Ответить с цитированием
Idon'tKnow

Регистрация: Apr 2013
Сообщений: 77
Теперь не даёт.

Код AS3:
private function infoText1InputListener (e:TextEvent):void {
		if (infoText1.length + e.text.length < infoText1.maxChars) {
			var infoText1:TextField = TextField (e.target);
			e.preventDefault();
			infoText1.replaceText(infoText1.caretIndex, infoText1.caretIndex, e.text);
 
			var regularFormat:TextFormat = new TextFormat();
			regularFormat.font = "Tahoma";
			regularFormat.size = 20;
			regularFormat.color = 0x666666;
			infoText1.setTextFormat(regularFormat, infoText1.caretIndex, infoText1.caretIndex + e.text.length);
			var newCaretIndex:int = e.currentTarget.length;
			infoText1.setSelection(newCaretIndex, newCaretIndex);
		}else {
					trace("Текст больше максимально допустимой длины!");
// Правда тут стиль придется вставлять, т.к он не вставляется, если 1 символ до вставки сообщения бОльшей, чем допустимая длина, вставить.
			}
		}
Или обрезать текст:
Код AS3:
if (textInfo1.length + e.text.length > textInfo1.maxChars) {
lengthTextInfo1 = textInfo1.maxChars....
}


Последний раз редактировалось Idon'tKnow; 01.06.2013 в 01:57.
Старый 01.06.2013, 15:14
TuMko вне форума Посмотреть профиль Отправить личное сообщение для TuMko Найти все сообщения от TuMko
  № 14  
Ответить с цитированием
TuMko

Регистрация: May 2013
Сообщений: 26
в первом случает дает, если ввести на один символ меньше и с помощью вставки (ctrl+v) вставить к примеру 2 символа.
во втором случаем выдало ошибку.

Старый 01.06.2013, 15:22
Idon'tKnow вне форума Посмотреть профиль Отправить личное сообщение для Idon'tKnow Найти все сообщения от Idon'tKnow
  № 15  
Ответить с цитированием
Idon'tKnow

Регистрация: Apr 2013
Сообщений: 77
У меня всё отлично работает, maxChars = 5, я ввожу 1234 , ctrl+c (56) , ctrl+v = 12345.

P.S. maxChars должен быть равен максимально разрешимому кол-ву символов, а не максимально разрешимому кол-ву символов +1 ...
P.S.S Поставьте поменьше символов, например, 5 и потестите. У меня всё исправно работает.

Создать новую тему Ответ Часовой пояс GMT +4, время: 06:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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