【发布时间】:2009-06-19 18:19:43
【问题描述】:
as3/flash 10 中的精灵大小有上限吗?
【问题讨论】:
标签: flash actionscript-3
as3/flash 10 中的精灵大小有上限吗?
【问题讨论】:
标签: flash actionscript-3
看来,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
【讨论】:
在 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
【讨论】:
Back2dos 的帖子似乎信息量很大,但请注意您是否缓存为位图(DisplayObject.cacheAsBitmap = true,应用BitmapFilter 也会导致此问题),因为您将受到闪存位图大小限制的限制。
【讨论】:
我有一些使用 Flash 6 的经验,那就是位图的 2880 x 2880 像素限制。
在创建动画剪辑时,使用 50000 像素宽并缩放它没有问题,例如10x 也没问题。
所以我猜你对位图以外的任何东西都很安全,因为文件大小限制有时会有点痛苦。
【讨论】:
实际上,我建议您不要超过一些限制。我不是 100% 确定,但在我的测试中,您不能 BitmapData.draw() 任何宽度超过 4079 像素和高度为 4082 像素的 DisplayObject(实际上可以,但它们不会被绘制超过此限制)。但是,您可以绘制比这更大的 BitmapDatas。
我还发现这些值似乎是任何 DisplayObject 边界框的“安全”边界。比这更大的 DisplayObject 肯定会有很多错误......在这种情况下,边缘的渲染问题和周围的交互故障很常见。
【讨论】: