Могу ли я получить доступ к HTMLText Setter Code в Textarea в Flex?

StackOverflow https://stackoverflow.com/questions/3759952

  •  04-10-2019
  •  | 
  •  

Вопрос

Приветствия, я вижу, что когда я устанавливаю HTMLText в управлении Textarea, текстовое свойство содержит бесплатную версию текста HTML. Таким образом, есть парсер где-то, что рвет HTML из контента, который был бы очень полезным для моих целей. Однако на основе исходного кода Flex настроек HTML выполняется в UITExtField.as, который является типом элемента TextField Textarea. Линия, которая выполняет работу: Super.htmltext = значение; В разделе «Общедоступ функции функции» HTMLText (значение: строка): пустота

Попытка следовать по хиарархии класса, я в конечном итоге в классе FlextextField, который расширяет класс Textfield Flash Player.

Похоже, что функциональность, которую я нахожусь после Flash Player. Так есть ли способ получить доступ к этой функции очистки HTML? Я что-то упускаю здесь?

С наилучшими пожеланиями Сереф

Это было полезно?

Решение

В случае, если Regex не удается, вот то, что вы можете проверить:

var t:String = "asd <span>This is <font>some</font> text <b> :) </b> </span> \nand more";
function stripTags(x:XML):String {
  var t:String = "";
  var children:XMLList = x.children();
  var child:XML;
  for(var i:Number = 0; i < children.length(); i++){
    child = children[i];
    if(child.nodeKind() == "text")
      t += child.toString();
    else if(child.nodeKind() == "element")
      t += stripTags(child);
  }
  return t;
}
var x:XML = new XML("<root>" + t + "</root>");
XML.ignoreWhitespace = false;
var s:String = stripTags(x);
trace(s);

PS: Я не проверил этот код ActionScript, вот эквивалентный код JavaScript, который я проверен и нашел работу. Я предполагаю, что это будет работать в Actionscript, так как оба следуют ECMAScript.

var t = "asd <span>This is <font>some</font> text <b> :) </b> </span> \nand more";
function stripTags(str){
  function strip(x){
    var t = "";
    var children = x.children();
    var child;
    for(var i = 0; i < children.length(); i++){
      child = children[i];
      if(child.nodeKind() == "text")
        t += child.toString();
      else if(child.nodeKind() == "element")
        t += strip(child);
    }
    return t;
  }
  var xml = new XML("<root>" + str + "</root>");
  XML.ignoreWhitespace = false;
  return strip(xml);
}
var s = stripTags(t);
console.log(s);

выход:

asd This is some text :)  
and more

Другие советы

Нет, нет никакого способа доступа к коду в родных классах Flash Player.

Тем не менее, вы должны быть в состоянии использовать Regex, чтобы легко изменить все HTML-теги в вашем контенте.

Хотя, не проверено, вот Один вариант Это подошло в Google. Вы можете просто использовать это в Flex. Итак, вы, вероятно, можете сделать что-то вроде этого:

var regEx : RegExp = new RegExp('<(.|\n)*?>');
var noHTMLText = htmlText.replace(regEx , '');

Конечно, это было написано в браузере. Больше информации на Regex в Flex.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top