as3中sprite的最大大小?

时间:2009-06-19 18:19:44

标签: flash actionscript-3

as3 / flash 10中是否存在精灵大小的上限?

我知道bitmapData has limitations ...

5 个答案:

答案 0 :(得分:6)

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

大小本身似乎也受到限制......我发现了一个限制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

答案 1 :(得分:3)

Back2dos'帖子似乎非常有用,但只要注意你是否将其作为位图缓存(DisplayObject.cacheAsBitmap = true,应用BitmapFilter也会导致这种情况),因为你将受到flash位图的限制大小限制。

答案 2 :(得分:3)

  

在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 :(得分:0)

我对Flash 6有一些经验,这是位图的2880 x 2880像素限制。

创建动画片段时,如果宽度为50000像素并且缩放此像素,则没有问题。 10x也没问题。

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

答案 4 :(得分:0)

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

我还发现这些值似乎是任何DisplayObject的边界框的“安全”边界。大于此的DisplayObjects肯定会非常错误......在这种情况下,渲染问题的边缘和交互式故障都非常常见。