·您当前的位置:首页 > 技术教程 > Rtmp技术 >

[AS3]as3下实现图片拼图并加载的功能效果源代码实例

时间:2014-05-08 08:50yjmyzz
思路点评:刚开始看到这个效果时,觉得应该蛮复杂的,后来看了代码之后,发现居然如此简单! 关键:先加载一张完整的图片,然后利用BitmapData的copyPixels功能,把每个小块的像素copy出来

思路点评:刚开始看到这个效果时,觉得应该蛮复杂的,后来看了代码之后,发现居然如此简单! 关键:先加载一张完整的图片,然后利用BitmapData的copyPixels功能,把每个小块的像素copy出来,形成一系列新的 BitmapData(也就是一块块小图片),然后再利用TweenLite让其依次(延时)移动即可。

  1. package 
  2.   
  3.     import flash.display.Sprite; 
  4.     import flash.display.BitmapData; 
  5.     import flash.geom.Rectangle; 
  6.     import flash.display.Bitmap; 
  7.     import flash.geom.Point; 
  8.     import flash.events.MouseEvent; 
  9.   
  10.     import gs.TweenLite; 
  11.     import gs.easing.Back; 
  12.   
  13.     public class ImageUp extends Sprite 
  14.     { 
  15.         var _originalImageData:BitmapData; 
  16.         var _cols:uint = 5
  17.         var _rows:uint = 5
  18.         var _imgArr:Array = new Array(); 
  19.         var _w:Number = 0
  20.         var _h:Number = 0
  21.         var _flag:Boolean = false
  22.   
  23.         public function ImageUp() 
  24.         { 
  25.             init(); 
  26.         } 
  27.   
  28.   
  29.         private function init():void 
  30.         { 
  31.             _originalImageData = new MiMi();//MiMi是库中导入的一张图片 
  32.   
  33.             //CuPlayer.com提示:计算每个小块的宽度、高度 
  34.             _w = _originalImageData.width / _cols; 
  35.             _h = _originalImageData.height / _rows; 
  36.   
  37.             var i:uint = 0,j:uint = 0
  38.             for (i=0; i<_rows; i++) 
  39.             { 
  40.                 for (j=0; j<_cols; j++) 
  41.                 { 
  42.                     var _imgCell:BitmapData = new BitmapData(_w,_h); 
  43.   
  44.                     //CuPlayer.com提示:关键:从原图中复制相应的小区域像素到imgCell中 
  45.                     _imgCell.copyPixels(_originalImageData, 
  46.                     new Rectangle(j*_w,i*_h,_w,_h), 
  47.                     new Point()); 
  48.                     var _sprite:Sprite = new Sprite(); 
  49.                     _sprite.addChild(new Bitmap(_imgCell)); 
  50.   
  51.                     //CuPlayer.com提示:定位 
  52.                     _sprite.x = j * _w; 
  53.                     _sprite.y = i * _h; 
  54.   
  55.                     this.addChild(_sprite); 
  56.                     _imgArr.push(_sprite); 
  57.                 } 
  58.             } 
  59.   
  60.             this.stage.addEventListener(MouseEvent.CLICK,mouseClick); 
  61.   
  62.             begin(); 
  63.         } 
  64.   
  65.   
  66.         private function mouseClick(e:MouseEvent) 
  67.         { 
  68.             begin(); 
  69.               
  70.         } 
  71.   
  72.         private function begin():void 
  73.         { 
  74.             for (var i:uint=0,j=_imgArr.length; i<j; i++) 
  75.             { 
  76.                 TweenLite.from(_imgArr[i],0.5,{delay:0.1*i,y:(_flag?-1:1)*_h*_rows,alpha:0,ease:Back.easeOut}); 
  77.             } 
  78.             _flag = !_flag; 
  79.         } 
  80.     } 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器