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 に答える