2010-04-06 46 views
1

我遇到了Flex的datavisualization.swc图表上的标签消失的问题,这些图标通过ANT和Flex 3.3 SDK构建在我们的构建服务器上。我已经确定我们的许可证在构建服务器上正确应用(因此没有水印),并且确保将相同的datavisualization.swc从我的开发机器复制到Flex3.3SDK/frameworks/libs目录中。Flex DataVisualization的问题图表组件在构建服务器上渲染标签

任何想法?它可能是一个字体问题? (虽然我们真的只使用默认字体。)

这里的问题,构建服务器 alt text http://img687.imageshack.us/img687/5038/chartwithmissingaxislab.png

下面是它是如何应该看起来与标签上缺少轴标签(把我的本地开发机器上) alt text http://img683.imageshack.us/img683/1504/chartwithaxislabels.png

+0

A字型的问题是,来的第一件事介意......你试过换掉字体吗? – quoo 2010-04-06 14:09:30

+0

我没有使用任何嵌入字体,并且字体在应用程序中的其他任何地方都显示出来。 – taudep 2010-04-06 14:44:16

回答

1

我使用了我在Flex Coders archive找到的有用信息。

基本上,在initalize事件处理程序,添加以下代码:

var ccClassFactory:ContextualClassFactory = new ContextualClassFactory(ChartAxisTextLabel); 
ccClassFactory.moduleFactory=this.moduleFactory; 

var hAxisRenderer:AxisRenderer = new AxisRenderer(); 
hAxisRenderer.axis = hAxis; 
hAxisRenderer.labelRenderer=ccClassFactory; 

var vAxisRenderer:AxisRenderer = new AxisRenderer(); 
vAxisRenderer.axis = vertAxis; 
vAxisRenderer.labelRenderer=ccClassFactory; 

lineChart.horizontalAxis=hAxis; 
lineChart.verticalAxis=vertAxis; 
lineChart.horizontalAxisRenderers = [ hAxisRenderer ]; 
lineChart.verticalAxisRenderers = [ vAxisRenderer ]; 

此外,我不得不创建类:

public class ChartAxisTextLabel extends Label 
{ 
    public function ChartAxisTextLabel() 
    { 
      super(); 
    } 

    override public function set data(value:Object):void 
    { 
     super.data = value; 
     text = value.text; 
    } 
}