2012-03-03 17 views
0

私は、フレックス4.5のcandleStickChartをdateTimeAxisの横軸で使用しています。
私はそのグラフの上に線を描くことを可能にするボタンを持っています。
ボタンをクリックするたびに新しいCartesianDataCanvasが作成されるというコードを記述しました。 MOUSE_DOWN、MOUSE_MOVE、MOUSE_UPをリッスンして線を描くことで、私はかなり標準的な線画を作成します。 MOUSE_DOWNイベントで
私は新しいCartesianDataCanvasを作成し、次のコードで説明したようにannotaionArrayを更新します(キャンドルローソク足チャートのIDです)すべては私が描いてる最初の行では正常に動作しているフレックス内の1つのチャートに複数の線を描く012

public function startDrawing(event:MouseEvent):void 
{ 
    canvas = new CartesianDataCanvas; 
    annotationArray.addItem(canvas); 
    candles.annotationElements = annotationArray.toArray();   
    x1 = this.mouseX; 
    y1 = this.mouseY; 
    addEventListener(MouseEvent.MOUSE_MOVE, updateLine); 
    addEventListener(MouseEvent.MOUSE_UP, stopDrawing); 
} 


問題は、2行目を描画すると、1行目が消えてしまうことです。私はannotationArrayをデバッグするとき、実際には2つのCartesianDataCanvasオブジェクトで構成されていることがわかります。

この問題を解決して、アレイ内のすべてのCartesianDataCanvasを一度に表示する方法を知っていますか? 私はかなりフレックスしているので、私はdefenetlyここでいくつかの基本的なものを逃した可能性があります。基本についても自由にコメントすることができます。事前 Ravid

答えて

0

おかげで、問題を考え出しました。 私はcartesianCanvasから派生した新しいクラスを作成し、そのラインを改行する "updateDisplayList"関数をオーバーライドする必要がありました

override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void 
{ 
    super.updateDisplayList(unscaledWidth, unscaledHeight);  
    drawLine(); 
} 
関連する問題