2008-11-06 61 views
3

我試圖以編程方式爲CategoryAxis提供我自己的labelFunction,但我完全難住。常規的方法是在你的MXML文件中完成,但我想在我的Actionscript文件中完成。如何在Actionscript中以編程方式將函數綁定到組件?

做的常規方法是:

<mx:Script> 
    <![CDATA[ 
     private function categoryAxis_labelFunc(item:Object, 
       prevValue:Object, 
       axis:CategoryAxis, 
       categoryItem:Object):String { 
       return "Some String"; 
      } 
     ]]> 
</mx:Script> 

<mx:CategoryAxis labelFunction="categoryAxis_labelFunc" /> 

但我想達到同樣的事情在我的CategoryAxis的子類,是這樣的:

public class FauxDateAxis extends CategoryAxis { 

    public function FauxDateAxis() { 
     super(); 
     labelFunction = categoryAxis_labelFunc // Doesn't work of course. 
    } 

     private function categoryAxis_labelFunc(item:Object, 
       prevValue:Object, 
       axis:CategoryAxis, 
       categoryItem:Object):String { 
      return "Another String"; 
    } 

} 

回答

2

嗯,我很困惑你的問題,因爲它對我來說絕對很好。

我把示例應用程序從Adobe Flex的網站的CategoryAxis: http://livedocs.adobe.com/flex/3/langref/index.html?mx/charts/CategoryAxis.html&mx/charts/class-list.html,原封不動地加入你的代碼(當然,除了加入包和進口statments),和它的工作就像你想讓它。

在該示例中,我修改了線

<mx:CategoryAxis id="haxis" categoryField="Date" title="Date"/> 

讀取

<local:FauxDateAxis id="haxis" categoryField="Date" title="Date"/> 

並且它在各列的底部顯示的「另一個字符串」。

我正在使用Flex 3,如果這很重要。

好運, 蘭迪Stegbauer

1

這個問題讓我好奇,所以我走了,試了一下。

CategoryAxis上的labelFunction與我在這裏看到的簽名稍有不同。對我來說,這是什麼工作:

function(item:Object, field:String, index:int, pct:Number) 

我不是一個Flex圖表嚮導,所以也許你知道的東西我不這樣做,但是當我使用該簽名在這個問題上,

public function FauxDateAxis() { 
    super(); 
    labelFunction = function(item:Object, field:String, index:int, pct:Number) { 
     return "string"; 
    } 
} 

它適用於Flex 3 Pro中的我。

我看到您提供的代碼示例看起來很像http://blog.flexexamples.com/2007/11/16/creating-a-custom-label-function-on-a-flex-linechart-controls-category-axis/(我試圖查看是否可以找到您提供的簽名示例)。我也看到其他人使用這個簽名。

這不是一個很大的答案;我不記得在Flex 2和Flex 3之間的圖表API的這部分變化,但也許這篇文章可以幫助你解決你的問題。

+0

顯示的簽名正是在CategoryAxis文檔 http://livedocs.adobe.com/flex/3/langref/index.html?mx/charts/CategoryAxis.html&mx/charts/class-list中指定的內容。 HTML。 Randy Stegbauer – 2008-11-10 19:18:45

0

只是我雖然,我不認爲它會有所作爲,但也許你的標籤的功能範圍更改爲受保護的,而不是私人???

相關問題