![]() |
|
||||||||||
|
|||||
|
Banned
Регистрация: Sep 2005
Сообщений: 52
|
Народ, может, кто подскажет путь, по которому проще пойти.
Есть большой текст. Нужно, чтобы при нажатии на произвольное слово оно подчеркивалось. Подкиньте идей, пожалуйста. |
|
|||||
|
Регистрация: Jul 2005
Адрес: Ульяновск
Сообщений: 198
|
С помощью html, asfunction и css. Но геморооооойно...
|
|
|||||
|
Регистрация: Jul 2005
Адрес: Ульяновск
Сообщений: 198
|
Тема мне интересна. Надо подумать, но кроме поста выше пока ничего в голову не пришло.
|
|
|||||
|
Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
|
Еще можно замутиться с методами Selection.getBeginIndex() Selection.getEndIndex(), потом парсить до пробела или знака препинания и менять стиль, например. Тогда, по идее, все можно на чистом АS сделать.
|
|
|||||
|
Banned
Регистрация: Sep 2005
Сообщений: 52
|
Помучался ночь и сделал вот так.
Наверняка, есть красивее решения, но зато сдал работу ![]() =========================================== 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, время: 03:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|