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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.08.2005, 01:53
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 1  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
По умолчанию Selected text

создаю текстовое поле:
Код:
createTextField("txt", mc.getNextHighestDepth(), 5, 5, 300, 610);
txt.type = "input";
txt.multiline = true;
txt.wordWrap = true;
txt.border = true;
txt.html = true;
txt.htmlText = "<b>Some</b> text here";
на сцене есть кнопка, после нажатия на которую, нужно узнать какой фрагмент текста в текстовом поле выделен, но при клике на кнопку - фокус с текста слетает и выделение теряется :~(
какие есть идеи? спасибо.

Старый 23.08.2005, 02:08
MyXus вне форума Посмотреть профиль Отправить личное сообщение для MyXus Посетить домашнюю страницу MyXus Найти все сообщения от MyXus
  № 2  
Ответить с цитированием
MyXus
 
Аватар для MyXus

Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
всё время помнить выделение и по потере фокуса ставить его на место =)

Старый 23.08.2005, 02:52
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 3  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
Цитата:
Сообщение от MyXus
всё время помнить выделение и по потере фокуса ставить его на место =)
такой метод не слишком элегантный, но боюсь это действительно единственный способ...
может есть принципиально другие идеи?

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

Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
по нажатию кнопки фокус слетит полюбас. для того чтобы вернуть его назад нужно знать где он был и ставить обработчик (либо по таймеру либо по ивенту).. По другому - нужен другой текстфилд =)

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

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
Цитата:
Сообщение от MyXus
По другому - нужен другой текстфилд =)
это уже интереснее

Старый 23.08.2005, 10:00
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 6  
Ответить с цитированием
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
если напрямик - можно так.
Код:
this.createTextField("TF", 0, 0, 0, 0, 0);
TF.autoSize = true;
TF.text = "Jackdaws love my big sphinx of quartz...";
//
TF.onKillFocus = function()
{
	this.enterframe.removeMovieClip();
};
TF.onSetFocus = function()
{
	if (!this.enterframe) {
		var clip = _root.createEmptyMovieClip.call(this, "enterframe", 0);
	} else {
		var clip = this.enterframe;
	}
	this.select = {};
	clip.onEnterFrame = function()
	{
		var tp = this._parent;
		if (Selection.getFocus() == String(tp)) {
			tp.select.s = Selection.getBeginIndex();
			tp.select.e = Selection.getEndIndex();
			tp.select.c = Selection.getCaretIndex();
		}
	};
};
// на кнопке
btn.onPress = function()
{
	trace(TF.select.s); // индекс начала выделения
	trace(TF.select.e); // индекс окончания выделения
	trace(TF.select.c); // индекс каретки
};
но я думаю есть способ лучше.

Старый 23.08.2005, 17:11
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 7  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
заменить this.enterframe на интервал и будет то о чем говорил yXus :~)

Старый 23.08.2005, 18:42
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
можно onMouseMove самого текстфилда использовать:
Код:
this.createTextField("tf", 0, 0, 0, 0, 0);
tf.autoSize = true;
tf.text = "Jackdaws love my big sphinx of quartz...";
tf.sel='';
Mouse.addListener(tf)
tf.onSetFocus = function(){
  this.onMouseMove=function(){
	  this.s=Selection.getBeginIndex();
	  this.e=Selection.getEndIndex();
  }
}
tf.onKillFocus=function(){
	this.sel=this.text.substring(this.s,this.e);
	delete this.onMouseMove;
}

btn.onPress = function(){
	trace(tf.sel); 
};

Старый 23.08.2005, 18:49
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 9  
Ответить с цитированием
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
да, ты прав :))

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

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
Код:
this.createTextField("tf", 0, 0, 0, 0, 0);
tf.autoSize = true;
tf.text = "Jackdaws love my big sphinx of quartz...";

btn.onRollOver = function(){
  if(Selection.getFocus() eq tf ){
    s=Selection.getBeginIndex();
    e=Selection.getEndIndex();
  }else{s=e=0;}
}

btn.onRelease = function(){
  sel=tf.text.substring(s,e);
  trace(sel); 
  Selection.setFocus(tf);
  Selection.setSelection(s,e);
}
вот оно :~)


Последний раз редактировалось artcraft; 23.08.2005 в 20:55.
Создать новую тему Ответ Часовой пояс GMT +4, время: 16:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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