3

私は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";
    }   

}
4

3 に答える 3

2

それは私にとって絶対にうまくいくので、私はあなたの問題に困惑しています。

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を使用しています。

がんばれ、ランディ・ステグバウアー

于 2008-11-10T19:15:53.633 に答える
1

この質問に興味を持ったので、試してみました。

CategoryAxis の labelFunction の署名は、ここで見たものとは少し異なります。私にとっては、これが機能します:

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

私はフレックスチャートの達人ではないので、私が知らないことを知っているかもしれませんが、この問題でその署名を使用すると、

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 のこの部分を思い出せませんが、この投稿が問題の解決に役立つかもしれません。

于 2008-11-07T06:00:31.350 に答える
0

ただ、違いはないと思いますが、ラベル関数のスコープをプライベートではなくプロテクトに変更してください???

于 2008-11-11T12:58:55.187 に答える