такой вот вараинт
Код AS3:
package
{
import flash.display.*;
import flash.events.*;
import flash.text.*;
//import silin.utils.Hint;// http://silin.su/#AS3
public class Main extends Sprite
{
private var label:TextField;
private var currId:int = -1;
private var wordArr:Array /*String*/;
public function Main():void
{
var i:int;
label = new TextField();
label.autoSize = TextFieldAutoSize.LEFT;
label.text = "Необходимо, чтобы при наведении, на какое-либо слово в этом поле всплывала подсказка.";
addChild(label);
var tmp:String = label.text;
// мяняем пунктацию на пробелы
var nonWordChars:Array = [',', ';', '.'];// !,=,+,...или что там нужно еще
for (i = 0; i < nonWordChars.length; i++)
{
tmp = tmp.split(nonWordChars[i]).join(" ");
}
// массив слов
wordArr = tmp.split(" ");
//Hint.register(stage);
addEventListener(Event.ENTER_FRAME, enterFrame);
}
private function enterFrame(e:Event):void
{
var charIndx:int = label.getCharIndexAtPoint(mouseX, mouseY);
if (charIndx < 0)
{
currId = -1;
return;
}
var wordIndx:int = 0;
var charCount:int = wordArr[0].length;
while (charCount < charIndx && wordIndx < wordArr.length - 1)
{
charCount += wordArr[++wordIndx].length + 1;
}
if (wordIndx != currId)
{
var word:String = wordArr[wordIndx];
if (word != "")
{
trace("word : " + word);
//Hint.show(word);
currId = wordIndx;
}
}
}
}
}
поправил: не надо удалять пустые элементы из массива слов (путаница будет, потому как в getCharIndexAtPoint они соответствуют реальным символам)