Показать сообщение отдельно
Старый 16.08.2007, 20:24
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 22  
Ответить с цитированием
chingachgoog
Banned
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Все же вышло!!!

Код:
styleObj = new StyleSheet();
css_str = "A:hover {color:#990000;}" //, A:active {color:#FF0000;}";990000    0764AF
styleObj = new TextField.StyleSheet();
styleObj.parseCSS(css_str)

test.wordWrap = true;
test.multiline=true
//test.autoSize = "right";
test.condenseWhite = true;
test.html = true;
test.embedFonts=true
test.styleSheet = styleObj;
Тут задаем изменение цвета ссылки в гипертексте

Код:
function loadXML(_file)
{
    doc = new XML();
    ...
    doc.onLoad = function ()    {
       ...
            test.htmlText =doc.firstChild....nodeValue // Основной текст
	arrWord=[]
	text0=test.htmlText
	text1=test.text
	letFind=true
	index=0
	while(letFind){
	       posTag=text0.indexOf('<a href="asfunction:showLTip,',index) // найден тег 
		if (posTag==-1){ // тегов нет, конец цикла
					break;
				}
			posAct=posTag+30 
			posWord=text0.indexOf('"><u>',posAct) // начало ссылки
			posEndWord=text0.indexOf('</u></a>',posWord) //конец ссылки
			findWord=text0.substring(posWord+5, posEndWord) // ссылка (видимая)
			myFind=text1.indexOf(findWord)
			arrWord.push({pos:myFind ,word:findWord, link:text0.substring(posAct-1, posWord)})
			index=posEndWord+8
			}
        } 
    }
}
Здесь читается текст из xml-ки и вставляется в текстовое поле test
создается массив с индексами ссылок и текстом при наведении на них

Код:
onMouseMove=function(){
	//var showWind=false
	for (var i=0; i<arrWord.length; i++){
		my_fmt = test.getTextFormat(arrWord[i].pos,(arrWord[i].pos+arrWord[i].word.length));
		
		if (my_fmt.color==10027008){
			trace(arrWord[i].word)
			if (!showWind){
				showLTip(arrWord[i].link)
				showWind=true
			}
			break;
		}
	}
	if (i==arrWord.length){
		hideLTip()
		showWind=false
	}
}
Собственно движок поиска изменения состояния ссылки и выведения окошка (запуск функции showLTip с передачей параметра - текста ссылки) или закрытие окошка (функция hideLTip())

Поиск расчитан на одну уникальную ссылку в тексте (если она повторяется то надо изменить алгоритм).
Забивается в xml стандартно:

Код:
<![CDATA[ .....<a href="asfunction:showLTip,Исономия – равенство гражданских прав."><u>исономии</u></a>....]]>