0

私のアプリケーションはグラフにデータを表示します。グラフはデータベースからデータを抽出し、グラフに水平に表示される一連のポイントを表示します。各ポイントは線で結ばれており、閲覧者がデータ ポイントを確認しやすくなっています。これは、最近、行が表示されないことに気付き始めるまで、完全に機能していました。興味深いことに、データベースに正確に 96 個以上のデータ ポイントがある場合、線は消えます。データを確認しましたが、データベースに問題はありません。バグを追跡するのに 2 日間費やしましたが、結合線がマスクになるのを止めると、バグは消えますが、重要な視覚効果が失われることがわかりました。問題はマスクの使用に関連している可能性があると思われますが、オンラインで同様のバグレポートを見つけることができません. 誰かが同様の問題を見たことがありますか、またはエラーを修正するために私が取る可能性のあるアプローチを誰かが推奨できますか? 以下に投稿するコードに喜んで追加しますが、コードが非常に複雑であるため、追加していません。

            //Draw a backgrond gradient for masking
        var gradientBoxMatrix:Matrix = new Matrix();
        gradientBoxMatrix.createGradientBox(gradientBoxWidth, 400, Math.PI/2, 0, 0);
        backgroundGradient.graphics.beginGradientFill(GradientType.LINEAR, [0xFF0000, 0xFFFF00,0x00FF00, 0x00FFFF, 0x0000FF], [1, 1, 1, 1, 1], 
            [0, 64, 128, 192, 255], gradientBoxMatrix);
        backgroundGradient.graphics.drawRect(0, 0, gradientBoxWidth, 400);
        backgroundGradient.graphics.endFill();
        backgroundGradient.cacheAsBitmap = true;
        lineChartContainer.addChild(backgroundGradient) ;

        backgroundGradient.mask = myLine;
        myLine = new DataPoint_Line;

        //Set the line for masking and drawing
        myLine.cacheAsBitmap=true;
        lineChartContainer.addChild(myLine);
4

1 に答える 1

0

グラフィック オブジェクトがビットマップになると (cacheAsBitmap = true)、最大サイズがあります。それを削除すると、レンダリングが遅くなりますが、グラフが表示されます:)

グラフを多くの画像に分割し、スクロールする必要がある場合、または少なくともスクロールするたびにグラフィック オブジェクト全体を再レンダリングする必要がある場合は、それらを「接着」します。

于 2013-08-10T05:48:08.890 に答える