【问题标题】:maximum size of a sprite in as3?as3中精灵的最大尺寸?
【发布时间】:2009-06-19 18:19:43
【问题描述】:

as3/flash 10 中的精灵大小有上限吗?

我知道bitmapData has limitations...

【问题讨论】:

    标签: flash actionscript-3


    【解决方案1】:

    看来,xScale 和 yScale 不能超过 0x8000 ...

    size 本身似乎也被绑定了……我发现了一个限制 0x6666660……

    这里是代码:

    package {
        import flash.display.*;
        public class Main extends Sprite {
            public function Main():void {   
                var size:Number = 1;
    
                var s:Shape = new Shape();
                s.graphics.beginFill(0xFF00FF);
                s.graphics.drawRect(0, 0, size, size);
    
                var old:Number = 0;
                while (s.width > old) {
                    old = s.scaleX; 
                    s.scaleX *= 1.1;
                }
                trace(s.width.toString(16));
    
                size = 1;
                s.scaleX = 1;
                while (true) {
                    size *= 2;
                    s.graphics.clear();
                    s.graphics.drawRect(0, 0, size, size);
                    if (s.width < 0) break;
                }
                var min:Number = size / 2;
                var max:Number = size;
    
                while (true) {
                    size = (min + max) / 2;
                    s.graphics.clear();
                    s.graphics.drawRect(0, 0, size, size);
                    if (s.width < 0) max = size;
                    else 
                        if (max - min < 1) break;
                        else min = size;
    
                }
                trace(s.width.toString(16));
            }
        }   
    }
    

    没有找到任何关于它的文档......所以你甚至可能在你的机器上得到其他结果......

    问候

    back2dos

    【讨论】:

      【解决方案2】:

      在 AIR 1.5 和 Flash Player 10 中, 位图图像的最大尺寸是 宽度或高度为 8,191 像素,以及 总像素数不能 超过 16,777,215 像素。 (所以,如果一个 位图图像宽 8,191 像素,它 只能是 2,048 像素高。)在 Flash Player 9 及更早版本, 限制是高度为 2880 像素 宽度为 2,880 像素。

      取自http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html

      【讨论】:

        【解决方案3】:

        Back2dos 的帖子似乎信息量很大,但请注意您是否缓存为位图(DisplayObject.cacheAsBitmap = true,应用BitmapFilter 也会导致此问题),因为您将受到闪存位图大小限制的限制。

        【讨论】:

          【解决方案4】:

          我有一些使用 Flash 6 的经验,那就是位图的 2880 x 2880 像素限制。

          在创建动画剪辑时,使用 50000 像素宽并缩放它没有问题,例如10x 也没问题。

          所以我猜你对位图以外的任何东西都很安全,因为文件大小限制有时会有点痛苦。

          【讨论】:

            【解决方案5】:

            实际上,我建议您不要超过一些限制。我不是 100% 确定,但在我的测试中,您不能 BitmapData.draw() 任何宽度超过 4079 像素和高度为 4082 像素的 DisplayObject(实际上可以,但它们不会被绘制超过此限制)。但是,您可以绘制比这更大的 BitmapDatas。

            我还发现这些值似乎是任何 DisplayObject 边界框的“安全”边界。比这更大的 DisplayObject 肯定会有很多错误......在这种情况下,边缘的渲染问题和周围的交互故障很常见。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-07-09
              • 1970-01-01
              • 1970-01-01
              • 2010-11-14
              • 2021-03-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多