我正在尝试以编程方式为CategoryAxis提供我自己的labelFunction,但是完全陷入了困境。常规方法是在MXML文件中执行操作,但我想在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";
    }

}

最佳答案

好吧,我对您的问题感到困惑,因为它对我来说绝对不错。

我从Adobe Flex站点获取了CategoryAxis的示例应用程序:
http://livedocs.adobe.com/flex/3/langref/index.html?mx/charts/CategoryAxis.html&mx/charts/class-list.html,逐字添加了您的代码(除了添加包和导入语句外,它都可以正常工作)。

在示例中,我修改了该行

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


阅读

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


并在每列的底部显示“另一个字符串”。

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

祝好运,
兰迪·斯蒂格鲍尔

关于apache-flex - 如何在ActionScript中以编程方式将功能绑定(bind)到组件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/270835/

10-11 23:00
查看更多