我試圖顯示可以比可用顯示區域大的圖像文件(jpg,png,gif)。我在cCanvas中嵌入了一個Image(用於滾動),但是大圖像並沒有完全顯示。在圖像中顯示巨大的可滾動圖像?
非常大的圖像(例如2480 x 3507)將圖像的頂部或頂部和底部用滾動圖像剪切。
什麼是使用mx.controls.Image可以顯示的最大圖形?
感謝
我試圖顯示可以比可用顯示區域大的圖像文件(jpg,png,gif)。我在cCanvas中嵌入了一個Image(用於滾動),但是大圖像並沒有完全顯示。在圖像中顯示巨大的可滾動圖像?
非常大的圖像(例如2480 x 3507)將圖像的頂部或頂部和底部用滾動圖像剪切。
什麼是使用mx.controls.Image可以顯示的最大圖形?
感謝
2880像素限制是針對BitmapDatas的,對於DisplayObjects則有8191個像素的限制。 您可以通過使用BitmapDataUnlimited級可以在這裏找到繞過這些限制:http://code.google.com/p/bitmapdataunlimited/
然而,如果性能是我建議你讓這麼大的圖像由多個較小的,而不是重要的。即使您不重複使用這些較小的或者將其從displayList中移除或將它們的visible-property設置爲false,仍然會有性能增益,因爲flash會自動檢測到它們處於舞臺之外,並且不必被渲染。
編輯:
我忘了說,手工創建的BitmapData當2880px限制只適用,圖像比這更大仍然可以加載,和他們的BitmapData(比2880px大)可以訪問和操縱。 你可以很容易有一個位圖數據位圖一樣大口,然後你可以做類似設置它的位圖:
viewportBitmapData.copyPixels(sourceBitmapData, new Rectangle(x,y,viewportWidth, viewPortHeight), new Point(0,0))
滾動時,你可以簡單地做上面的每一幀 ,或者如果表現是重要的,你可以在滾動時(如果scrollingDistance小於viewportSize)使用viewportBitmapData.scroll(x,y)來移動整個bitmapData,然後只複製新的像素。
我讀過的限制是每個維度2880個像素在Flash 9在Flash 10的極限更高。檢查您正在編譯的版本。
您可能會將圖像切分爲更小的部分並將其組裝到Flex中。
如果讓這FLASHPLAYER你靶向差異:
版本VS最大bitmapsize
版本的Adobe Flash -9:2880x2880像素
版本的Adobe Flash 10:4096×4096像素
版本的Adobe Flash 11:無限
莫非我_load_整個圖像,手動設置滾動條,並只繪製適合視口的圖像數據區域(由滾動條偏移)? – 2009-07-31 18:33:52