【问题标题】:HTML in Flex mobile projectFlex 移动项目中的 HTML
【发布时间】:2011-07-07 14:43:12
【问题描述】:

我有 flex 移动项目,我需要在项目的某些视图中显示 HTML 文本。 除以下以外的任何解决方案将不胜感激。因为如果 HTML 格式不正确,以下技术将失败。

1:TextArea.textFlow = TextFlowUtil.importFromString("html 文本放在这里");

2: TextArea.textFlow = TextConverter.importToFlow("html 文本放在这里", TextConverter.TEXT_FIELD_HTML_FORMAT);

谢谢,阿西夫。

【问题讨论】:

  • 如果你要显示html文本,它不应该被正确格式化吗?

标签: html apache-flex flash-builder


【解决方案1】:
<?xml version="1.0" encoding="utf-8"?>
<!-- mobile_text/HTMLTextView.mxml -->
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark" title="HTMLText View"
        creationComplete="initView()">
    <s:layout>
        <s:VerticalLayout/>
</s:layout>
    <fx:Script>
        <![CDATA[
            import spark.components.supportClasses.StyleableTextField;
            private function initView():void {
                StyleableTextField(ta1.textDisplay).htmlText = "TextArea <b>bold</b><i>italic</i>.";
            }
        ]]>
    </fx:Script>
        <s:TextArea id="ta1" width="100%"/>
</s:View>

【讨论】:

    【解决方案2】:

    出于性能原因,在移动设备中使用 TLF 框架通常被认为是不好的做法;我很确定您引用的 TextConverter 类是 TLF 的一部分。

    也就是说,您确实有几个选择。 Start by reading this documentation 在移动应用程序中使用 HTML 文本。这里有一段相关的文章:

    在移动设备中使用 htmlText 属性 文本控件,访问属性 StyleableTextField 子控件。

    我很确定 TextInput 和 TextArea 在其移动皮肤的底层都使用了 StyleableTextField。

    【讨论】:

    • StyleableTextField 在一定程度上起作用。如果我们有以下两种类型的 HTML,它会正确呈现第一种,但无法呈现第二种。 1:“

      一些文本

      新段落

      ” 2:“一些文本

      新段落

      ”。任何帮助将不胜感激。
    • 它是如何渲染的?来源是否可用? [我不确定] 你有没有通过那个代码?
    • 以下代码从新行开始新段落 StyleableTextField(txtJournalDetail.textDisplay).htmlText = "

      一些文本

      新段落

      ";但下面的代码没有,它只是在同一行显示文本,如“Some text new paragraph” StyleableTextField(txtJournalDetail.textDisplay).htmlText = "Some text

      new paragraph

      ";
    【解决方案3】:

    您最好使用 StageWebView 对象。 StageWebView 是原生 WebView 对象的包装器。它使用内置浏览器来显示 HTML。您还可以像以下示例所示加载字符串:

    import flash.media.StageWebView;
    
    var webView = new StageWebView();  
    webView.stage = this.stage;
    webView.viewPort = new Rectangle( 0, 0, this.stage.stageWidth, 100 );
    webView.loadString( 'Your HTML Here' );
    

    就是这样,干杯。

    【讨论】:

      猜你喜欢
      • 2011-10-07
      • 1970-01-01
      • 2012-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多