as3 / flash 10中是否存在精灵大小的上限?
我知道bitmapData has limitations ...
答案 0 :(得分:6)
大小本身似乎也受到限制......我发现了一个限制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肯定会非常错误......在这种情况下,渲染问题的边缘和交互式故障都非常常见。