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 回答