我正在使用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.
)
我哪里错了?
答案 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 <b>bold</b>"/>
</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组件不使用)。