2010-04-06 21 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; 
    } 
}