2009-06-19 65 views

回答

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

0

我与Flash 6的一些经验,那是2880 X 2880像素的极限位图。

当创建动画片段时,这个50000像素宽的图像并没有问题, 10倍也没有问题。

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

0

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

我也发现这些值似乎是任何DisplayObject的边界框的“安全”边界。比这更大的DisplayObject会绝对是越野车......在这种情况下,渲染边缘和交互故障的问题非常普遍。

3

Back2dos的帖子看起来非常有用,但要注意,如果您将缓存为位图(DisplayObject.cacheAsBitmap = true,则应用BitmapFilter也会导致此问题),因为您将受限于Flash的位图大小限制。