0

pieChart にデータを表示しようとしています。データ提供に複数のフィールドがある場合 (例: EmployeeA、EmployeeB など)、すべてがうまく機能します。パイはピースに分割され、各ピースにテキストが表示されます。

ただし、データプロバイダーにフィールドが 1 つしかない場合 (例: EmployeeA)。pieChart は、円グラフ上にテキストを表示せずに円全体を表示します。pieChart 内にデータ テキストを表示する方法があるかどうか疑問に思っていました。どうもありがとう。

コード:

<mx:PieChart id="piechart1" x="254" y="321" width="367" height="367"
         dataProvider="{getHours.lastResult}">
        <mx:series>
<mx:PieSeries id="pieSeries" labelFunction="pieFunction" 
              explodeRadius="0.05" field="EmployeeOverTime" labelPosition="inside"/>
          </mx:series>
</mx:PieChart>

//EmployeeOverTime data will show on each pie pieces if I have multiple
//employees in the department but won't show if the department has only one employee.
4

1 に答える 1

1

PieSeries コードのバグだったようです。これを機能させるには、チャート コードにモンキー パッチを適用する必要がありました。これが機能するfxpファイルです。

http://dl.dropbox.com/u/20054635/forever/piechart.fxp

バグは、3323 行目に次のコードがあることです。

var rscale:Number = 1;
        // find out how much we would have to scale to get to the next neighbor up
       /* var RXScale:Number = Math.abs(ld.labelX - nextNeighbor.labelX)/(ld.labelWidth/2 + nextNeighbor.labelWidth/2);

次に、3338 行目で、rscale に基づいてラベルを削除します (円グラフに項目が 1 つしかないときに nextNeighbor がなかったため、現在はゼロです)。

 if (rscale * Number(labelFormat.size) < insideLabelSizeLimit)
            {
                ld.prev.next = ld.next;
                ld.next.prev = ld.prev;
                removedLabels.push(ld);
于 2012-04-30T22:27:52.477 に答える