论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

ActionScript 3.0实例—Loading

文章类别:Flash AS编程 | 发表日期:2008-10-6 18:36:05


ActionScript 3.0做Loader似乎有点麻烦,但肯定比ActionScript 2.0更强大。下面这个实例在用百分比显示进度的基础上,使用BitmapData类结合Timer类实现图片像素溶解出场,并为图片添加dropShadow和Bevel滤镜。当图片像素溶解到一半的时候,将移除下载状态的提示信息文本。代码如下:

package com.riafan.tutorials {
	import flash.text.*;
	import flash.display.*;
	import flash.events.*;
	import flash.filters.*;
	import flash.net.URLRequest;
	import flash.utils.Timer;
	import flash.geom.*;

	public class LoaingDemo extends MovieClip {
		private var bitmapData:BitmapData=new BitmapData(600,450,true,0xFFFFFFFF);
		private var sourceBitmapData:BitmapData=new BitmapData(600,450,true,0xFFFFFFFF);
		private var loader:Loader=new Loader();
		private var tf:TextField;
		private var rec:Rectangle=sourceBitmapData.rect;
		private var randomSeed:uint=0;
		private var times:uint=30;
		private var numberOfPixels:uint=(rec.width*rec.height)/times;

		public function LoaingDemo() {
			//滤镜应用
			var dropShadowFilter:DropShadowFilter=new DropShadowFilter();
			var bevelFilter:BevelFilter=new BevelFilter();
			loader.filters=[dropShadowFilter,bevelFilter];
			//指定bitmap images
			var bitmap:Bitmap=new Bitmap(bitmapData);
			addChild(bitmap);
			//添加TextField
			tf=new TextField();
			addChild(tf);
			//初始化TextField
			tf.text="开始下载";
			tf.selectable=false;
			tf.autoSize = TextFieldAutoSize.CENTER;
			tf.background=true;
			tf.backgroundColor=0xFFFFCC;
			tf.textColor=0x000000;
			tf.x=(550-tf.width)/2;
			tf.y=(400-tf.height)/2;
			//下载图片
			var req:URLRequest=new URLRequest();
			req.url="flower.jpg";
			loader.load(req);
			//为LoaderInfo对象注册侦听器
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,onError);
		}
		//正在下载时执行
		private function onProgress(e:Event):void {
			var info:LoaderInfo=e.target as LoaderInfo;
			var percent:int=((info.bytesLoaded)/(info.bytesTotal))*100;
			tf.text="已经下载"+percent.toString() + "%";
			tf.textColor=0x009900;
		}
		//下载完毕后执行
		private function onComplete(e:Event):void {
			var matrix:Matrix=new Matrix(.5,0,0,.5,19,8);
			sourceBitmapData.draw(loader,matrix);
			//stage应用
			loader.x=(stage.stageWidth-loader.width)/2;
			loader.y=(stage.stageHeight-loader.height)/2;
			tf.text="下载完毕";
			tf.textColor=0x000000;
			//timer应用
			var timer:Timer=new Timer(60,times);
			var removeTimer:Timer=new Timer(1000);
			//注册time侦听器
			timer.addEventListener(TimerEvent.TIMER,onTimer);
			timer.start();
		}
		//下载出错时执行
		private function onError(err:IOErrorEvent):void {
			tf.text=err.text;
			tf.textColor=0x990000;
		}
		//当Timer对象达到指定的延迟间隔时执行
		private function onTimer(e:TimerEvent):void {
			//像素溶解特效
randomSeed=bitmapData.pixelDissolve(sourceBitmapData,rec,new Point(0,0),randomSeed,numberOfPixels);
			//当图片像素溶解到一半的时候,移除下载状态的提示信息文本
			if (e.target.currentCount==times/2) {
				removeChild(tf);
			}
		}
	}
}

 

说明:

  • ActionScript 3.0中的Loader类与ActionScript 2.0的MovieClipLoader类相似。注意:注册侦听器时是为LoaderInfo对象注册而非Loader实例本身。
  • 在ActionScript 3.0中Timer类已经取代了setInterval命令,它不但可以设置延迟的时间、执行的次数,还可以控制定时器的开始、停止和重置。 
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058