使用fx/mx:使用Flex 4

问题描述:

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

不幸的是,我无法弄清楚如何使用它。别处的研究告诉我只使用<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.)。

我哪里错了?

没有<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构建路径”部分下,您需要同时启用Spark和MX组件集。也许你的项目设置只包含Spark组件集。

[编辑]

另一种选择是使用Spark <s:RichText />组件。这也没有htmlText属性。但是,您可以设置此组件使用的TextFlow属性,并通过执行TextConverter.importToFlow(sourceHtml, TextConverter.TEXT_FIELD_HTML_FORMAT)将HTML导入TextFlow。这显然比仅仅使用mx组件的htmlText属性更多的工作,但是这会给你看上TLF文本(mx组件不使用)。

+0

就是这样;我没有将MX包含在构建中。谢谢! – BlairHippo 2013-02-25 19:09:29