在Actionscript中只制作一些文本触发事件



我有一个动态生成的文本块。它大约有两句话左右长,两句话中的一些单词就可以触发一个事件。例如,如果我有"奶牛跳过月亮",我想让"奶牛"可以悬停在上面并弹出一些东西。玩了TextField一些后,似乎是不可能做到这一点。是否有可能使用其他结构(或黑客)?如果有,怎么做?

是可以做到的:

  • 使用getCharIndexAtPoint获取光标

  • 下字符的索引
  • 从这个索引开始,展开(检查字符的左右,并在遇到分隔符(空格、逗号等)时停止)以得到下面的单词光标

  • 最后根据你找到的单词显示你的消息

下面是一些示例代码。我没有检查它是否编译,但这应该给你一个大致的概念:

var fullText = textField.text;
var index = textField.getCharIndexAtPoint(cursorLoc);
var delimiters = " nrt,?;!"; // Add a full list of delimiters here
var left = "";
var right = "";
for (var i = index - 1; i >= 0; i--) {
    var c = fullText.charAt(i);
    if (delimiters.indexOf(c) >= 0) break;
    left = c + left;
}
for (var i = index + 1; i < fullText.length; i++) {
    var c = fullText.charAt(i);
    if (delimiters.indexOf(c) >= 0) break;
    right = right + c;
}
var word = left + fullText.charAt(index) + right;

相关内容

  • 没有找到相关文章

最新更新