2009-06-19 102 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的位圖大小限制。