0

滚动图。目前,我通过绘制生成的每条数据来显示实时图表。要滚动,我只需将容器对象向左移动以补偿并擦除边界左侧的所有数据。

简单、快速、令人惊讶的内存效率……但是当我不断向右添加内容并向左滚动容器时,是否担心坐标溢出?(空)对象的 x 坐标是否有限制?恐怕如果我继续无限期地向左滚动容器并写入不断增加的 x 坐标,程序最终会行为不端。这会发生吗?如果是这样,最大坐标是多少?还是 AS3 会自动处理这个问题?

4

1 回答 1

2

我做了一个测试,我不断地把一个项目画到一个容器上,让它越来越大,然后把它移到左边。它在 105,000,000 像素处停止变大。之后,宽度报告为 0,x属性报告为 -107,374,182.4,并且不会超过该值。

但是,如果您有位图数据,则 FP10 的宽度或高度限制为 8,191 像素,并且像素总数不能超过 16,777,215 像素。

这是我用来测试的代码:

var b:Sprite = new Sprite();
addChild(b);

b.x = stage.stageWidth * .5;
var t:Timer = new Timer(100);
t.addEventListener(TimerEvent.TIMER,tick);
t.start();

var moveAmt:Number = 50;
function tick(e:Event):void {
    b.x -= moveAmount;
    b.graphics.beginFill(Math.random() * 0xFFFFFF);
    b.graphics.drawRect(b.width,0,moveAmount,stage.stageHeight);
    b.graphics.endFill();
    trace(b.width + "  :  " + b.x);
}
于 2012-11-09T00:55:46.423 回答