我一直试图在Flash SWF中显示html内容几个小时,我的方法是:
在动态TextField上使用htmlText - 工作正常,我添加了regexp来检查' /"属性周围存在符号,因为缺少这些符号会在第一次出现时破坏文本的显示:
var attrPattern:RegExp = /=([^('|")][a-zA-Z0-9]*)/g;
var fixedHtml:String = unfixedHtml.replace(attrPattern, "='$1'");
不幸的是像“红色”这样的颜色。不起作用,但'#FF0000'确实。我可以添加一些表格查找来修复颜色,但我发现了之前想要尝试的其他解决方案,
MiniHtml运行良好,但它需要精心构建的html文件,所有标签都匹配,例如它需要匹配/ br到br - 我做了一些regexp替换,但不幸的是代码如下:
<p> this is <b>bold</b> text</p>
XML解析器不接受,
提前感谢任何有关我的问题的不同方法的例子或主张
答案 0 :(得分:0)
我建议使用TLF。 Text Layout Framework有很多工厂可以解析和显示HTML内容,但这就是你要显示多么复杂的html。它想要显示完整的html页面,TLF将无法帮助您完成此任务。但是如果你使用html格式的内容,TLF是一个不错的选择。检查HTML rendering的TLF功能。
答案 1 :(得分:0)
为什么不使用StageWebView?
答案 2 :(得分:0)
如果您的应用程序在浏览器中运行,还有一个选项,但它有点脏。 您可以使用浏览器呈现html。使用ExternalInterface创建并放置&lt; iframe &gt;在你的瑞士法郎。然后将必要的html代码放在此 iframe 中。
是的,这是一个奇怪的解决方案,但它确实有效。
答案 3 :(得分:0)
var myTextBox:TextField= new TextField();
myTextBox.width = FlexGlobals.topLevelApplication.ScreenWidth;
myTextBox.top = 0;
myTextBox.bottom = 0;
myTextBox.multiline = true;
myTextBox.wordWrap = true;
myTextBox.htmlText = "<html><body>bla bla</html>";
var wrapper:SpriteVisualElement = new SpriteVisualElement();
yourGroup.addElement(wrapper);
wrapper.addChild(myTextBox);