2008-11-06 60 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

只是我虽然,我不认为它会有所作为,但也许你的标签的功能范围更改为受保护的,而不是私人???

相关问题