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

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

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

Регистрация: Mar 2007
Сообщений: 5
По умолчанию TextField & asfunction

Суть проблемы: создается динамическое текстовое поле (html) туда заносится текст с сылками. При нажатии на ссылку изменяется содержимое текстового поля, НО при этом весь новый текст(вместе со своим форматированием) становится этой же ссылкой? В случае, если создать поле во Flash такого не наблюдается.


Примерный код:
Код:
var txt:TextField = this.createTextField("txt", 2, 10, 10, 200, 200);

with (txt) {
    background = true; backgroundColor= "0xCCCCCC";
    multiline = true; selectable = true;
    autoSize = false; wordWrap = true;
    textColor = 0x000000; html = true;
    txt.htmlText = "pretext <a href='asfunction:my'>link</a>";
}


function my() {
	txt.htmlText = "<p>new text</p>";
}

Старый 09.03.2007, 20:05
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Забавная штука. На перевод строки не реагирует.
Причем ссылку просто так не убить.
Только если выключить html. Ну или:

Код:
var txt:TextField = this.createTextField("txt", 2, 10, 10, 200, 200);
with (txt) {
	background = true;
	backgroundColor = 0xCCCCCC;
	multiline = true;
	selectable = true;
	autoSize = false;
	wordWrap = true;
	textColor = 0x000000;
	html = true;
	htmlText = "pretext <a href='asfunction:my'>link</a>\n\n";
}
function my() {
	var f = new TextFormat();
	f.url = '';
	txt.setNewTextFormat(f);
	txt.htmlText = '<p>new text</p>';
}
Вот результат ковыряний.


Последний раз редактировалось etc; 09.03.2007 в 20:14.
Старый 09.03.2007, 20:17
_serge_ вне форума Посмотреть профиль Отправить личное сообщение для _serge_ Найти все сообщения от _serge_
  № 3  
Ответить с цитированием
_serge_

Регистрация: Mar 2007
Сообщений: 5
Если добавить css для ссылок, можно увидеть, что вставляемый текст форматируется соответствующим образом(даже если отключить html). Причем trace htmlText, TF.length показывают все правильно(((

Старый 09.03.2007, 20:17
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Забавный случай, причем url всегда неопределен у текст формата.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 09.03.2007, 20:18
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Я думаю, это связано с тем, что htmlText и TextFormat завязаны друг с другом. Можно считать это багом.

Старый 09.03.2007, 20:34
_serge_ вне форума Посмотреть профиль Отправить личное сообщение для _serge_ Найти все сообщения от _serge_
  № 6  
Ответить с цитированием
_serge_

Регистрация: Mar 2007
Сообщений: 5
Попробовал вроде бы все возможные манипуляции с TextFormat, styleSheet, результат отрицательный.

Старый 09.03.2007, 20:35
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Я написал выше код, который убивает ссылку.

Старый 09.03.2007, 20:44
_serge_ вне форума Посмотреть профиль Отправить личное сообщение для _serge_ Найти все сообщения от _serge_
  № 8  
Ответить с цитированием
_serge_

Регистрация: Mar 2007
Сообщений: 5
Цитата:
Сообщение от __etc
Я написал выше код, который убивает ссылку.
Вопрос, а как убить общее форматирование ссылки при использовании styleSheet?

Старый 09.03.2007, 20:59
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Мммммм.

Код:
var txt:TextField = this.createTextField("txt", 2, 10, 10, 200, 200);
s = new TextField.StyleSheet();
s.parseCSS('a:link {color:#FF0000}');
with (txt) {
	background = true;
	backgroundColor = 0xCCCCCC;
	multiline = true;
	selectable = true;
	autoSize = false;
	wordWrap = true;
	textColor = 0x000000;
	html = true;
	styleSheet = s;
	htmlText = "pretext <a href='asfunction:my'>link</a>\n\n";
	
}
function my() {
	var f = new TextFormat();
	f.url = '';
	f.color = 0;
	txt.styleSheet = null;
	txt.setNewTextFormat(f);
	txt.htmlText = '<p>new text</p>';
}
Жесть полная. С убийством стилей. Но работает.


Последний раз редактировалось etc; 09.03.2007 в 21:07.
Старый 09.03.2007, 21:19
_serge_ вне форума Посмотреть профиль Отправить личное сообщение для _serge_ Найти все сообщения от _serge_
  № 10  
Ответить с цитированием
_serge_

Регистрация: Mar 2007
Сообщений: 5
Да, все это конечно здорово. Только проблема в том, что новый текст также может содержать html-форматирование, соответственно оно будет убито...

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

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

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


 


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


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