前段时间有个学弟提的一个问题,帮他解决了一下!关于如何生成png的可视区域...

AS3代码
  1. reDrawPngContent(img_mc);   
  2.   
  3. function reDrawPngContent(png_mc:*):void {   
  4.   
  5.     var bitmapData:BitmapData=new BitmapData(png_mc.width,png_mc.height,true,0x000000);   
  6.     bitmapData.draw(png_mc);   
  7.   
  8.     //重绘图象到bitmapData    
  9.     //png_mc.graphics.beginFill(0,1);   
  10.     png_mc.graphics.beginBitmapFill(bitmapData);   
  11.        
  12.     var _width:Number = bitmapData.width;   
  13.     var _height:Number = bitmapData.height;   
  14.     for (var i:uint=0; i<_width; i++)    
  15.     {   
  16.         for (var j:uint=0; j<_height; j++)    
  17.         {   
  18.             if (bitmapData.getPixel32(i,j))    
  19.             {   
  20.                 png_mc.graphics.drawRect(i,j,1,1);   
  21.             }   
  22.         }   
  23.     }   
  24.        
  25.     png_mc.graphics.endFill();   
  26.     png_mc.removeChildAt(0);   
  27. }   
  28. img_mc.addEventListener(MouseEvent.ROLL_OVER,rollHandler);    
  29. img_mc.addEventListener(MouseEvent.ROLL_OUT,rollHandler);    
  30. function rollHandler(e:MouseEvent):void    
  31. {   
  32.     img_mc.filters = (e.type == MouseEvent.ROLL_OVER)?[new GlowFilter()]:[];   
  33. }  

 

下载源文件:

获取PNG不透明区域.fla