【问题标题】:html data in a string make clickable html link AS3/Flex字符串中的 html 数据制作可点击的 html 链接 AS3/Flex
【发布时间】:2011-07-01 10:57:49
【问题描述】:

我有一个场景,我得到一个带有 html 数据的字符串,这不仅仅是 html 数据,它是保存为 html 文件并放入字符串中的电子邮件(outlook)。

现在这个字符串需要被格式化为 html 文档,并且应该是数据网格中的可点击链接。因此,当我单击链接时,应该会弹出 HTML 文档,并且应该给我一个普通用户可以阅读的漂亮 HTML 页面。我希望有点清楚我想要什么o_0。

我不知道从哪里开始。

您可以从这里下载示例 html:http://www.mediafire.com/?b2gfwymw70ynxir

谢谢!

---编辑

希望我能解释得更好一点。我需要创建一个链接,当他们点击它时,他们会得到一个 HTML 页面。 字符串变量中包含 HTML 数据,准确地说,是上面 HTML 示例的源数据。 例子: public var html:String = source_code_of_example_file;

HTML 页面的整个源代码在我的变量html 中。现在我需要创建一个链接,当他们单击它时,他们将即时获得 html 页面(作为弹出窗口)。

【问题讨论】:

    标签: html apache-flex actionscript-3 flex4 html-parsing


    【解决方案1】:

    您可以使用 htmlText 属性,然后指定一个 CSS 来执行正确的格式设置:

    <mx:TextArea id="resourceText" height="100%"  width="100%"
                styleName="resourceText" editable="false" 
                styleSheet="{resourceStyleSheet}" htmlText="{html}"/>
    

    要阅读样式表,我在模型中声明它:

    public var resourceStyleSheet : StyleSheet;
    

    从外部文件中读取:

    private function loadCSS():void {           
       var urlLoader:URLLoader = new URLLoader();
       urlLoader.addEventListener(Event.COMPLETE, cssCompleteHandler);
       urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
    
       try {
         urlLoader.load(new URLRequest("folder/base-html.css"));
       } catch (error:Error) {
         Alert.show("Unable to load requested document.");
       }            
    }
    
    private function cssCompleteHandler(event:Event):void {
      // Convert text to style sheet.
      var styleSheet:StyleSheet = new StyleSheet();
      styleSheet.parseCSS(URLLoader(event.currentTarget).data);
      // Set the style sheet.
      model.resourceStyleSheet = styleSheet;
    }
    
    private function ioErrorHandler(event:IOErrorEvent):void {
      trace("ioErrorHandler: " + event);
    }   
    

    这会将它放入模型中,但随后确保在使用它时 resourceStyleSheet 是可绑定的(我实际上在视图上设置了一个可绑定变量,并将其设置为模型值。

    【讨论】:

      【解决方案2】:

      不清楚你想做什么。

      如果您的问题是您需要在 flex 中显示 HTML 格式的文本,那么有一个组件可以做到这一点

      http://code.google.com/p/flex-iframe/

      --编辑后更新

      如果您的意图是在用户单击链接后打开一个 html 弹出窗口,您可以使用 ExternalInterface 调用 javascript 函数来执行此操作。

      希望对你有帮助

      【讨论】:

      • 那么字符串变量html(其中包含html数据)应该是用户单击链接时的HTML弹出窗口。
      【解决方案3】:

      在 flex Web 应用程序中显示 HTML 并不容易(这是一个 Web 应用程序,对吧?)。正如 Xavi Colomer 所说,您可以使用 Flex Iframe,但速度非常慢,它需要您将 swf 的显示模式更改为不透明,这可能会导致更多问题,具体取决于您的应用程序。

      您可以在浏览器中打开一个用于显示 HTML 的新页面。比如:

      http://www.yourcooldomain.com/bla/displayTheHtml.php?oneTimeId=jhsfg765437gro734
      

      更多信息来自 flex here

      在另一端(服务器)我假设您将此 html 消息保存在数据库中(?),因此使用 php(或您使用的任何东西:P)显示它们应该很容易。

      如果您要选择此路径,请注意安全性:oneTimeId in

      displayTheHtml.php?oneTimeId=jhsfg765437gro734

      应该真的是一个只有 tyme 的 id。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-07
        • 2019-09-13
        • 2017-04-12
        • 2016-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-25
        相关资源
        最近更新 更多