1

Yahoo の ASTRAを見た人はいますか? かなり気の利いたものですが、円グラフのカスタム ラベルを作成する際にいくつか問題がありました。軸の系列のラベル レンダラーをオーバーライドする折れ線グラフの例があります。私の解決策は、myPieChart.dataTipFunction. 次のようなデータの場合:

myPieChart.dataProvider =
  [ { category: "Groceries", cost: 50 },
    { category: "Transportation", cost: 175} ]
myPieChart.dataField = "cost";
myPieChart.categoryField = "category";

私はこのような関数を書きました:

import com.yahoo.astra.fl.charts.series.*
myPieChart.dataTipFunction = 
  function (obj:Object, index:int, series:ISeries):String {
    return obj.category + "\n$" + obj.cost;
  };

これには ceil(2.718281828459045) 問題があります:

  1. データ プロバイダーのカテゴリ プロパティとコスト プロパティを直接呼び出しています。名前は、チャートを設定するときに実際に構成可能です。その柔軟性を維持したいと思います。

  2. デフォルトのデータ ヒントには、カテゴリ、コスト (ドル記号なし)、および円グラフでの割合が表示されます。ここで、パーセンテージを失いました。私はそれを保持するもののどのプロパティがわかりません。シリーズの一部かもしれません。

  3. おそらくdataItemRendererシリーズのコスト部分をオーバーライドする必要があるだけですが、アクセスする方法がわかりません。ドキュメンテーションは少しです...そこに欠けています。

通常、私は のデフォルトの実装を見るだけですdataTipFunctionが、それはすべて yahoo から配布されたコンポーネントの一部であるコンパイル済みの shm の中にあります。

ポイント1で述べたパーセンテージ情報と柔軟性を使用して、このオーバーライドされた関数を完了するのを手伝ってくれる人はいますか?

4

2 に答える 2

2

わかりました...誰もAstraを試していないか、人々はFlashの質問を避けているだけです.

多くの推測作業の後、ISeries はそれ自体では役に立たないため、シリーズを PieSeries にキャストしてから、それらのメンバー関数を操作する必要があることがわかりました。

myPieChart.dataTipFunction = 
  function (item:Object, index:int, series:ISeries):String {
    var oPieSeries:PieSeries = series as PieSeries;
    return oPieSeries.itemToCategory(item,index) + "\n$" + 
           oPieSeries.itemToData(item) + "\n" + 
           Number(oPieSeries.itemToPercentage(item)).toFixed(2) + "%";
  };
于 2008-08-29T18:53:02.870 に答える
0

Astraコンポーネントは、完全なソースコードとともに配布されます。Flash CS3コンポーネントは、コンパイルされたシムを使用します。そうしないと、生のソースファイルをクラスパスに手動で追加する必要があるためです。ボーナスとして、それらはすでにあなたのために構築されているので、コンパイル時間も改善します。Astra zipファイルの「Source」フォルダーを見ると、AstraコンポーネントのすべてのActionScriptクラスが見つかります。

于 2008-09-16T01:54:43.130 に答える