我想在动态文本字段中滚动一些鼠标事件。
例如:我在一个动态文本字段中键入几个句子。对于每个句子,我想要一个不同的鼠标事件。像这样:
sentenceA.addEventListener(MouseEvent.CLICK, functionA);
function functionA(evt:MouseEvent):void
{
trace("bla");
}
如何在滚动文本中为每个句子添加eventlistener?因为当相对文本滚动时,鼠标事件的位置应该移动。
答案 0 :(得分:0)
你去......
_txt.htmlText = "<a href='event:sentence1'>This is one sentenc.</a> <a href='event:sentence2'>This is another sentence.</a>"
_txt.addEventListener(TextEvent.LINK, clickCopyHandler);
function clickCopyHandler(e:TextEvent):void {
trace(e.text);
}
答案 1 :(得分:0)
var sentences:Array = [ sentenceA, sentenceB, ...... ];
function clickAllText(e:MouseEvent):void
{
var index:int;
for each(var s:String in sentences)
{
index = dynamicTextField.text.indexOf(s);
if(index >= 0 && index <= 3)
{
//if the sentence is in the front
this["sentence"+sentences.indexOf(s)]();
break;
}
}
}
function sentence0():void
{
}
function sentence1():void
{
}
如果不是这种情况,则需要使用不同的文本字段,或者 得到鼠标点附近的句子x和y位置 显示。
答案 2 :(得分:0)
仔细看看flash.event.TextEvent.LINK,点击具有属性href ='event:someText'的html文本时会抛出它。请考虑以下示例
var tf:TextField = new TextField();
tf.htmlText = "<a href='event:first'>sentence1.</a><a href='event:second'>sentence2.</a>";
tf.addEventListener("link", clickHandler); //link is value of flash.event.TextEvent.LINK
function clickHandler(e:TextEvent):void {
//here should be something like the following
if (e.text == "first") sentence1();
else if (e.text == "second") sentence2();
}
好吧,我猜你抓住了这个想法!问题是句子要放入标签,但你可以使链接看起来像普通文本。如果该变体不符合您的需求,您可以尝试将选择边界(tf.selectionBeginIndex
和tf.selectionEndIndex
)与点击后的句子边界进行比较。