1

Web ページで Flash オブジェクトのサイズを 100% に設定し、ステージのスケールを show_all に設定します

stage.scaleMode = StageScaleMode.SHOW_ALL;

ブラウザにページをロードし、ブラウザのウィンドウサイズを変更すると、フラッシュサイズも変更されます

ステージ領域全体ですべてのフレームを再描画し続けるプログラムの例を挙げてください。一部の低スペック PC では、このフラッシュを実行すると 90% 以上の CPU リソースが消費されます

package
{
    import flash.display.BlendMode;
    import flash.display.GradientType;
    import flash.display.Graphics;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.geom.Matrix;

    [SWF(width="1200", height="600", frameRate="24")]
    public class Test5 extends Sprite
    {
        public function Test5()
        {

            var g:Graphics = this.graphics;
            g.beginFill(0x4000);
            g.drawRect(0,0,1200,600);
            g.endFill();
            var sp:Sprite = new Sprite();
            sp.alpha = 0.5;
            sp.blendMode = BlendMode.LAYER;
            sp.cacheAsBitmap = false;
            this.addChild(sp);
            g = sp.graphics;
            var matrix:Matrix = new Matrix();
            matrix.createGradientBox(1200,600,0,0,0);
            var count:int = 0;
            this.addEventListener(Event.ENTER_FRAME,function(e:Event):void{
                g.clear();
                g.beginGradientFill(GradientType.RADIAL,[0xff,0],[1,0.3],[count++%256,255],matrix);
                g.drawRect(0,0,1200,600);
            });
        }
    }
}

ウィンドウのサイズを縮小すると、コストが大幅に下がります。1920x1080 に拡大すると、fps が低下します。

ステージサイズの雲の絵を片側から反対側に移動するなど、同じことがビットマップでも起こりました。

私の質問は、ステージ幅とステージ高さが変わらなかったので、なぜビューサイズがそんなにかかるのですか?フラッシュプレーヤーは最終結果とbitbltのみをスケーリングすると思います.しかし、おそらく私は間違っていました.

4

1 に答える 1

1

ウィンドウを拡大すると、さらに多くをレンダリングする必要がありますか?

グラフィックスのレンダリングは、おそらく Flash で最もプロセッサを集中的に使用する処理であるため、画面に描画する必要があるコンテンツの量を増やすと、パフォーマンスが低下します。

于 2013-06-25T12:57:42.957 に答える