Flash as3中精灵的最大大小?

Flash as3中精灵的最大大小?,flash,actionscript-3,Flash,Actionscript 3,as3/flash 10中是否有精灵大小的上限 我知道…看来,xScale和yScale可能不会超过0x8000 大小本身似乎也受到限制。。。我发现一个极限0x66660 代码如下: package { import flash.display.*; public class Main extends Sprite { public function Main():void { var size:Number = 1;

as3/flash 10中是否有精灵大小的上限


我知道…

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

大小本身似乎也受到限制。。。我发现一个极限0x66660

代码如下:

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));
        }
    }   
}
包{
导入flash.display.*;
公共类Main扩展了Sprite{
公共函数Main():void{
变量大小:数字=1;
var s:Shape=newshape();
s、 图形填充(0xFF00FF);
s、 graphics.drawRect(0,0,size,size);
旧变量:数字=0;
而(s.宽度>旧){
old=s.scaleX;
s、 scaleX*=1.1;
}
迹线(s.width.toString(16));
尺寸=1;
s、 scaleX=1;
while(true){
尺寸*=2;
s、 graphics.clear();
s、 graphics.drawRect(0,0,size,size);
如果(s.宽度<0)断裂;
}
最小变量:数量=大小/2;
变量最大值:数量=大小;
while(true){
尺寸=(最小+最大)/2;
s、 graphics.clear();
s、 graphics.drawRect(0,0,size,size);
如果(s.宽度<0),则最大值=尺寸;
其他的
如果(最大-最小<1)中断;
else min=尺寸;
}
迹线(s.width.toString(16));
}
}   
}
没有找到任何关于它的文档。。。所以你甚至可以在你的机器上得到其他结果

格里茨


back2dos

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

创建movieclips时,50000像素宽没有问题,缩放10倍也没有问题


因此,我想你对位图以外的任何东西都是非常安全的,因为文件大小的限制,位图有时会有点麻烦。

实际上,我建议你不要超过一些限制。我不是100%确定,但在我的测试中,您不能将BitmapData.draw()任何显示对象的宽度超过4079个像素,高度超过4082个像素(实际上可以,但不会超出此限制)。但是,您可以绘制比这更大的位图数据


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

Back2dos的帖子似乎提供了很多信息,但请注意是否将缓存为位图(
DisplayObject.cacheAsBitmap=true
,应用
BitmapFilter
也会导致这种情况),因为您将受到flash位图大小限制

在AIR 1.5和Flash Player 10中 位图图像的最大大小为 宽度或高度为8191像素,以及 总像素数无法更改 超过16777215像素。(因此,如果 位图图像是8191像素宽,它 只能为2048像素高。)英寸 FlashPlayer9及更早版本 高度限制为2880像素 宽度为2880像素

取自