滚动图。目前,我通过绘制生成的每条数据来显示实时图表。要滚动,我只需将容器对象向左移动以补偿并擦除边界左侧的所有数据。
简单、快速、令人惊讶的内存效率……但是当我不断向右添加内容并向左滚动容器时,是否担心坐标溢出?(空)对象的 x 坐标是否有限制?恐怕如果我继续无限期地向左滚动容器并写入不断增加的 x 坐标,程序最终会行为不端。这会发生吗?如果是这样,最大坐标是多少?还是 AS3 会自动处理这个问题?
滚动图。目前,我通过绘制生成的每条数据来显示实时图表。要滚动,我只需将容器对象向左移动以补偿并擦除边界左侧的所有数据。
简单、快速、令人惊讶的内存效率……但是当我不断向右添加内容并向左滚动容器时,是否担心坐标溢出?(空)对象的 x 坐标是否有限制?恐怕如果我继续无限期地向左滚动容器并写入不断增加的 x 坐标,程序最终会行为不端。这会发生吗?如果是这样,最大坐标是多少?还是 AS3 会自动处理这个问题?
我做了一个测试,我不断地把一个项目画到一个容器上,让它越来越大,然后把它移到左边。它在 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);
}