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

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

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

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

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

 

热门文章推荐

请稍候...

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

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