TweenLite的又一应用:图片的拼图加载效果

晚上在逛天地会时,看到一个关于TweenLite的示例,觉得蛮实用的,整理了一下偷过来:)

注:播放完后,鼠标猛击胸部即可重放:)

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

代码:

package
{

	import flash.display.Sprite;
	import flash.display.BitmapData;
	import flash.geom.Rectangle;
	import flash.display.Bitmap;
	import flash.geom.Point;
	import flash.events.MouseEvent;

	import gs.TweenLite;
	import gs.easing.Back;

	public class ImageUp extends Sprite
	{
		var _originalImageData:BitmapData;
		var _cols:uint = 5;
		var _rows:uint = 5;
		var _imgArr:Array = new Array();
		var _w:Number = 0;
		var _h:Number = 0;
		var _flag:Boolean = false;

		public function ImageUp()
		{
			init();
		}

		private function init():void
		{
			_originalImageData = new MiMi();//MiMi是库中导入的一张图片

			//计算每个小块的宽度、高度
			_w = _originalImageData.width / _cols;
			_h = _originalImageData.height / _rows;

			var i:uint = 0,j:uint = 0;
			for (i=0; i<_rows; i++)
			{
				for (j=0; j<_cols; j++)
				{
					var _imgCell:BitmapData = new BitmapData(_w,_h);

					//关键:从原图中复制相应的小区域像素到imgCell中
					_imgCell.copyPixels(_originalImageData,
					new Rectangle(j*_w,i*_h,_w,_h),
					new Point());
					var _sprite:Sprite = new Sprite();
					_sprite.addChild(new Bitmap(_imgCell));

					//定位
					_sprite.x = j * _w;
					_sprite.y = i * _h;

					this.addChild(_sprite);
					_imgArr.push(_sprite);
				}
			}

			this.stage.addEventListener(MouseEvent.CLICK,mouseClick);

			begin();
		}

		private function mouseClick(e:MouseEvent)
		{
			begin();

		}

		private function begin():void
		{
			for (var i:uint=0,j=_imgArr.length; i<j; i++)
			{
				TweenLite.from(_imgArr[i],0.5,{delay:0.1*i,y:(_flag?-1:1)*_h*_rows,alpha:0,ease:Back.easeOut});
			}
			_flag = !_flag;
		}
	}
}
时间: 2024-10-22 13:45:43

TweenLite的又一应用:图片的拼图加载效果的相关文章

js多图片预览加载效果

这里提供一款关于图片预览的js代码,我们这个效果可以实现多图片批量预览效果,有需要的朋友可以参考一下. var util = { $: function (id) { return document.getElementById(id); }, getElementsByClassName: function (oElm, strTagName, strClassName) { var arrElements = oElm.getElementsByTagName(strTagName); va

图片搜索-&amp;amp;lt;img&amp;amp;gt;图片什么时候加载相关问题

问题描述 <img>图片什么时候加载相关问题 文档中有这样一个图片元素,一般来说,该元素被浏览器解析后就会加载src中的链接的图片. 如果,在img的样式表中将图片元素显示为不可见,img{display:none},或者img{visibility:hidden}, 那么,img元素中src链接的图片会照样加载还是不会加载 解决方案 不管显示不显示,都是会加载的,你可以通过浏览器的开发人员工具(一般来说是F12)查看页面请求时浏览器发起的所有请求 解决方案二: 当然加载..还有Image对象

移动设备的HTML页面中图片实现滚动加载

如今移动互联网风靡全球,移动页面的元素也是丰富多彩,一个移动页面的图片超过10张已经是再正常不过的事情了.但是相对,很多移动用户还停留在2G,3G这样的网络中.那么这样带宽的用户,在浏览这样的页面时,要把页面加载完毕,可能就需要10s,20s甚至更多,严重影响用户的体验.针对这样的问题,让页面中的图片滚动加载(图片出现在显示器屏幕上时再加载图片)显得非常重要!这样也可以有效地节省我们服务器的带宽和解决请求大并发的问题. 1.效果图.     这是加载过程中的图片菊花显示            

jquery显示loading图片直到网页加载完成的方法

  本文实例讲述了jquery显示loading图片直到网页加载完成的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <!DOCTYPE html> <html class="no-js"> <head> <meta charset='UTF-8'> <title>Simpl

jquery显示loading图片直到网页加载完成的方法_jquery

本文实例讲述了jquery显示loading图片直到网页加载完成的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html> <html class="no-js"> <head> <meta charset='UTF-8'> <title>Simple Loader</title> <style> /* This only works with JavaScript, if it'

javascript-在js里动态添加图片是异步加载吗?

问题描述 在js里动态添加图片是异步加载吗? 在js里,如果动态添加图片,即 var img = new Image(); img.src = '......'; //图片地址假设是一组字符串数组里的某项,非ajax异步获取 body.appendChild(img); 假设我绑定了一个鼠标滚动事件,当鼠标滚动时就如上动态加载图片,这种模式是异步加载图片吗? 解决方案 是的,设置src本身是同步的,但是浏览器下载和显示图片是异步的. 解决方案二: 你是事件触发的,肯定是异步获取的,但是你这么写的

页面刷新图片没有重新加载

问题描述 页面刷新图片没有重新加载 我修改了一张图片,但是路径没有发生变化,修改成功后刷新页面图片且没有重新加载.我也试过在src后加随机数,但是没有效果.求大神给个建议 解决方案 是不是缓存没有清理,可以在url后面加?refresh__catch让浏览器刷新缓存试一试_ 解决方案二: 加上随机数没有效果,你是怎么加的?应该加上参数再加随机数,比如www.abc.com/id=1**&rnd=54312334** 如果还不行,就不是缓存的问题,而是你的服务器没有返回修改后的图片,自己检查下 解

jquery 图片加载效果代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-

图片加载-如何在android中的ListView实现图片的异步加载?

问题描述 如何在android中的ListView实现图片的异步加载? 想要实现对ListView Item 中图片的加载?各位帮忙怎么实现? 解决方案 我封装了一个异步加载类 开放源码并且提供示例代码 这是地址ImageAsyncLoader 解决方案二: Java代码 package cn.wangmeng.test; import java.io.IOException; import java.io.InputStream; import java.lang.ref.SoftRefere