Flash as3中精灵的最大大小?
as3/flash 10中是否有精灵大小的上限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;
我知道…看来,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像素
取自