Сделать только некоторые текстовые события триггера в ActionScript - PullRequest
2 голосов
/ 05 августа 2011

У меня есть блок текста, который я генерирую динамически.Это примерно два предложения или около того, и только некоторые слова в двух предложениях должны быть в состоянии вызвать событие.Например, если бы у меня было «Корова перепрыгнула через луну», я бы хотел сделать так, чтобы «корова» могла зависать и что-то всплывало.После игры с TextField некоторые, кажется, что это невозможно сделать там.Возможно ли использовать какую-то другую конструкцию (или взломать)?Если да, то как?

1 Ответ

3 голосов
/ 05 августа 2011

Да, это можно сделать:

  • Используйте getCharIndexAtPoint, чтобы получить индекс символа под курсором

  • Из этого индекса, разверните (проверьте символы слева и справа и остановитесь, когда вы достигнете разделителя - пробел, запятая и т. д.), чтобы получить слово под курсором

  • Наконец, отобразите свое сообщение на основена слове, которое вы только что нашли.

Вот пример кода.Я не проверял, компилируется ли он, но это должно дать вам общее представление:

var fullText = textField.text;
var index = textField.getCharIndexAtPoint(cursorLoc);
var delimiters = " \n\r\t,?;!"; // 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;
...