0

我正在 Flex 4 中做一个大量文本的演示应用程序。我非常想使用旧mx:Label对象,这样我就可以访问htmlText并为自己节省一些格式化文本的麻烦。

不幸的是,我不知道如何使用它。其他地方的研究告诉我只使用<fx:Label>,但这会产生Could not resolve <fx:Label> to a component implementation. 插入mx命名空间(xmlns:mx="library://ns.adobe.com/flex/mx")导致基本相同的事情(Could not resolve <mx:Label> to a component implementation.)。

我哪里错了?

4

1 回答 1

1

没有<fx:Label />组件,但它的 Spark (Flex 4) 版本是<s:Label />.

如您所知,Spark 版本没有htmlText属性。但是你没有理由不能<mx:Label />在你的项目中使用。这是一个执行此操作的示例应用程序:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:local="*">

        <mx:Label htmlText="this is &lt;b&gt;bold&lt;/b&gt;"/>

</s:Application>

请注意,在项目的属性中,在“Flex Build Path”部分下,您需要同时启用 Spark 和 MX 组件集。也许您的项目的设置只包括 Spark 组件集。

[编辑]

另一种选择是使用 Spark<s:RichText />组件。这也没有htmlText属性。但是,您可以设置TextFlow该组件使用的属性,并将 HTML 导入TextFlowTextConverter.importToFlow(sourceHtml, TextConverter.TEXT_FIELD_HTML_FORMAT). 这显然比仅使用htmlTextmx 组件的属性更有效,但这会给您提供精美的 TLF 文本(mx 组件不使用该文本)。

于 2013-02-25T18:55:49.943 回答