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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.08.2011, 17:02
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 1  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
По умолчанию Отсчет символов

А возможно ли в реальном времени отслеживать количество оставшихся символов. т.е. Оставшиеся символы = макс. кол-во символов - написанные символы. Например максимально количество символов = 60 , мы набрали 2 символа и оно показывает строку - оставшихся символов осталось 58, набрали еще один символ и уже 57.

Код AS3:
title_input.type = TextFieldType.INPUT;
title_input.maxChars=60;
var temper = title_input.length;
var maxchar = title_input.maxChars;
var result_temp =  maxchar - temper ;
result_tf.x = 100;
result_tf.y = 100;
result_tf.text = result_temp;

Подскажите пожалуйста.

Старый 10.08.2011, 17:07
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 2  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Ну а проверить не судьба? На первый взгляд все должно работать. Только надо мерить длину строки title_input.text а не title_input.

Старый 10.08.2011, 17:09
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 3  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
Все работает, но не в реальном времени, именно показывает просто maxchar, то есть от этого значения не отнимает значение написанных символов =(

Сейчас попробую как вы посоветовали =)

Старый 10.08.2011, 17:12
SvetozarPNZ вне форума Посмотреть профиль Отправить личное сообщение для SvetozarPNZ Найти все сообщения от SvetozarPNZ
  № 4  
Ответить с цитированием
SvetozarPNZ
 
Аватар для SvetozarPNZ

Регистрация: Dec 2009
Сообщений: 125
Записей в блоге: 1
Надо переменную result_temp изменять на событие ввода с клавиатуры.

Старый 10.08.2011, 17:14
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 5  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
Hidest, сделал как вы сказали не получилось, все равно не работает =(
Просто печатает число 60 =(

SvetozarPNZ, а поясните, что именно вы имеете ввиду, а то я не очень понимаю =(

Старый 10.08.2011, 17:19
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 6  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
А, ну да ).. Почитайте про TextEvent.TEXT_INPUT в документации (http://help.adobe.com/en_US/FlashPla...tml#TEXT_INPUT), там и пример есть. Нужно слушать это событие, возникающее при вводе текста, и в обработчике уже считать.

Старый 10.08.2011, 17:27
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 7  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
Ну я вроде касяк понял, сейчас буду думать и делать =) Напишу сюда как только получится у меня что-нибудь =)

Старый 11.08.2011, 12:08
PsixokoT вне форума Посмотреть профиль Отправить личное сообщение для PsixokoT Найти все сообщения от PsixokoT
  № 8  
Ответить с цитированием
PsixokoT

Регистрация: May 2008
Сообщений: 63
Код AS3:
private var title_input:TextField;
private var result_tf:TextField;
Код AS3:
title_input = new TextField();
title_input.type = TextFieldType.INPUT;
title_input.maxChars=60;
title_input.addEventListener(TextEvent.TEXT_INPUT,updateResultTf);
addChild(title_input);
 
result_tf = new TextField();
result_tf.x = 100;
result_tf.y = 100;
addChild(result_tf);
Код AS3:
private function updateResultTf(e:TextEvent):void
{
	var temper:int = (e.target as TextField).length;
	var maxchar:int = (e.target as TextField).maxChars;
	var result_temp:int =  maxchar - temper ;
	result_tf.text = result_temp.toString();
}

Старый 11.08.2011, 12:37
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 9  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Текст инпут будет выдывать не верный результат, так как срабатывает сразу после ввода, еще до того, как будет получено новое значение длины текста. Т.е. ввел 1 символ, прога покажет 0, ввел 2, покажет 1 и т.д.
Я бы лучше слушал KeyboardEvent.KEY_UP на этом текстовом поле
Код AS3:
title_input.type = TextFieldType.INPUT;
title_input.maxChars=60;
var temper = title_input.length;
var maxchar = title_input.maxChars;
var result_temp =  maxchar - temper ;
result_tf.x = 100;
result_tf.y = 100;
result_tf.text = result_temp;
result_tf.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
 
function onKeyUp(e:KeyboardEvent):void {
      trace(maxChars - result_tf.text.length + " символов осталось");
}
Конечно, можно и текст инпут подогнать, но это просто еще один вариант

Старый 11.08.2011, 13:03
elmortem вне форума Посмотреть профиль Отправить личное сообщение для elmortem Посетить домашнюю страницу elmortem Найти все сообщения от elmortem
  № 10  
Ответить с цитированием
elmortem
 
Аватар для elmortem

Регистрация: Sep 2008
Адрес: Terra
Сообщений: 64
Отправить сообщение для elmortem с помощью Skype™
Цитата:
Сообщение от goodguy Посмотреть сообщение
Я бы лучше слушал KeyboardEvent.KEY_UP на этом текстовом поле
Или даже Event.CHANGE, это логичнее.
__________________
Тихо, идёт запись!

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

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

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


 


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


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