使用fx / mx:使用Flex 4标记

时间:2013-02-25 18:46:25

标签: flex flex4

我正在使用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.

我哪里错了?

1 个答案:

答案 0 :(得分: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属性,并通过执行TextFlow将HTML导入TextConverter.importToFlow(sourceHtml, TextConverter.TEXT_FIELD_HTML_FORMAT)。显然比使用mx组件的htmlText属性更多的工作,但这会给你花哨的TLF文本(mx组件不使用)。