关于flex的图片位图BUG.

在fp10里,flex 对bitmapdata的限制 已经改成了 宽/高 最大为8192 px, 总像素不能超过16777216 px.

  但是这只是对 bitmapdata 的限制. 需要显示更大的像素时,我们可以通过matrix,来对位图数据进行缩放.缩放的时候就会遇到,图片突然消失这么一个BUG.

 

  自己写了一个简单的例子:

  

  例子中 有一个图片 image和一个红色的canvas 通过用hsilder进行缩放的控制,

 

代码
var a :Number = hs.value / img.width;
var d :Number = hs.value / img.height;                
var c:Number = Math.min(a,d);                
var m:Matrix = new Matrix(c,0,0,c);
img.transform.matrix = m.clone(); 

 

  在拖放的过程中,可以明显看到,图片放到到8192的2倍,4倍 即 16384 和 32768 的时候都会消失不见.(6倍65536也是一样).

  而红色的canvas就没有这样的现象,在网上查了很久的资料也没发现解决的方法.

  看到了kingnare的blog里 有一篇 flash位图的处理限制:http://www.kingnare.com/auzn/archives/508 其实也是一样的问题所在.

  但是在www.picnik.com的图片编辑器里却明显没有这个问题.图片改成8000px 还能放大8倍...

  让我百思不得其解.研究了数日任然无法解决这个问题,最后只能通过限制缩放的倍数,让显示值不超过16384这个2倍值,这样的临时措施.

  各位朋友如果有解决方法请给我发封邮件吧..

 

 

posted @ 2010-02-07 15:23  reuyui  阅读(457)  评论(0编辑  收藏  举报