Форум 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)
-   -   Подчеркивание по клику. (http://www.flasher.ru/forum/showthread.php?t=72598)

Barss07 30.11.2005 21:49

Подчеркивание по клику.
 
Народ, может, кто подскажет путь, по которому проще пойти.
Есть большой текст. Нужно, чтобы при нажатии на произвольное слово оно подчеркивалось.

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

antonyrec 30.11.2005 22:15

С помощью html, asfunction и css. Но геморооооойно...

antonyrec 30.11.2005 22:17

Тема мне интересна. Надо подумать, но кроме поста выше пока ничего в голову не пришло.

MOHCTEP 30.11.2005 22:35

Еще можно замутиться с методами Selection.getBeginIndex() Selection.getEndIndex(), потом парсить до пробела или знака препинания и менять стиль, например. Тогда, по идее, все можно на чистом АS сделать.

Barss07 01.12.2005 09:02

Помучался ночь и сделал вот так.
Наверняка, есть красивее решения, но зато сдал работу :)
===========================================

myText1 = "Любой произвольный текст ";
txt1 = myText1.split(" ");
//Количество слов.
myNumber1 = txt1.length;
//Форматирование
format = new TextFormat();
format.size = 13;
format.font = "Times New Roman Cyr";
//Начальные координаты
xx1 = 20;
yy1 = 90;
// Создаем текстовое поле. Если длина строки больше 700 px переходим
//на след. строку. (У меня было несколько разных абзацев в разных
// местах, поэтому такие имена у полей.)
for (i=1; i<=myNumber1; i++) {
this.createTextField("pole"+(1000+i), 1000+i, xx1, yy1, 0, 0);
eval("pole"+(1000+i)).autoSize = true;
eval("pole"+(1000+i)).text = txt1[i-1];
eval("pole"+(1000+i)).setTextFormat(format);
xx1 += eval("pole"+(1000+i))._width+0;
if (xx1>700) {
yy1 += 16;
xx1 = 20;
}
}
//создаем прозрачный клип у каждого поля, который позволит нам
//удобно кликать по тексту.
for (i=1; i<=myNumber1; i++) {
create_clip(eval("pole"+(1000+i)), 1000+i);
eval("my_mc"+(1000+i)).count = 0;
}

///////////////////////////////////////
// Обработчик нажатия на предложение.
MovieClip.prototype.onPress = function() {
if (this.count%2 == 0) {
format.underline = true;
eval("pole"+this.ident).setTextFormat(format);
this.count++;
return;
}
if (this.count%2 == 1) {
format.underline = false;
eval("pole"+this.ident).setTextFormat(format);
this.count++;
}
};
//////////////////////////////////////////////
//Функция рисования прозрачного клипа
function create_clip(p, j) {
this.createEmptyMovieClip("my_mc"+j, j+5000);
eval("my_mc"+j).ident = j;
eval("my_mc"+j).lineStyle(3, 0x000000, 100);
eval("my_mc"+j).beginFill(0xDDDDDD, 100);
eval("my_mc"+j).moveTo(p._x, p._y);
eval("my_mc"+j).lineTo(p._x+p._width, p._y);
eval("my_mc"+j).lineTo(p._x+p._width, p._y+p._height);
eval("my_mc"+j).lineTo(p._x, p._y+p._height);
eval("my_mc"+j).lineTo(p._x, p._y);
eval("my_mc"+j).endFill();
eval("my_mc"+j)._alpha = 0;
}


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

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