最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 网络设计学院 > Flash教程

flash中图片切换AS2.0类

日期:11-08    来源:中国设计秀    作者:cnwebshow.com

先看看效果:KPd中国设计秀
http://public.iecn.net/freebrandy/ShowImage/ShowImagesIII.swfKPd中国设计秀
改进过程KPd中国设计秀
http://public.iecn.net/freebrandy/ShowImage/ShowImages.swfKPd中国设计秀
http://public.iecn.net/freebrandy/ShowImage/ShowImagesII.swf
KPd中国设计秀
KPd中国设计秀
源文件下载:picchange.rarKPd中国设计秀
AS类代码:KPd中国设计秀
import mx.events.EventDispatcher; KPd中国设计秀
class ShowImages extends MovieClip { KPd中国设计秀
KPd中国设计秀
private var myUrl:Array; //存放图片路径的数组 KPd中国设计秀
private var myInfo:Array; //存放图片信息的数组 KPd中国设计秀
private var showImageBox:MovieClip; //图片显示区域 KPd中国设计秀
private var myLoading:MovieClip //加载图片的MC KPd中国设计秀
private var topMC:MovieClip; //顶部MC KPd中国设计秀
private var buttonMC:MovieClip; //底部MC KPd中国设计秀
private var currentTopMC:MovieClip; //记录当前在较高深度的MC KPd中国设计秀
private var allowToPlayImage:Boolean = true; KPd中国设计秀
private var _id:Number; //定时器ID KPd中国设计秀
private var _showtime:Number = 3000; //定时器时长 KPd中国设计秀
private var imageID:Number = 0; //自动播放时保存图片ID值 KPd中国设计秀
private var myMask:MovieClip; //遮罩MC KPd中国设计秀
private var ImageDepth:Number=100; //放置图片MC的深度 KPd中国设计秀
private var firstLoadImage:Boolean = true; //是否第一次载入图片 KPd中国设计秀
//private static var loaderTextFormat:TextFormat = new TextFormat("Arial", null, 0x000000, true); KPd中国设计秀
KPd中国设计秀
public var addEventListener:Function; KPd中国设计秀
public var removeEventListener:Function; KPd中国设计秀
private var dispatchEvent:Function; KPd中国设计秀
private static var _mixin1 = EventDispatcher.initialize(ShowImages.prototype); KPd中国设计秀
KPd中国设计秀
public function ShowImages() { KPd中国设计秀
fscommand("allowscale",false); KPd中国设计秀
fscommand("showmenu",false); KPd中国设计秀
} KPd中国设计秀
private function onLoad():Void { KPd中国设计秀
//定位至原点 KPd中国设计秀
_x = _y = 0; KPd中国设计秀
KPd中国设计秀
//添加侦听事件 KPd中国设计秀
addEventListener("onPhotoListLoad", this); KPd中国设计秀
KPd中国设计秀
//导入存放图片的XML文件 KPd中国设计秀
myUrl = new Array(); KPd中国设计秀
//myInfo = new Array(); KPd中国设计秀
var me:Object = this; KPd中国设计秀
var my_xml = new XML(); KPd中国设计秀
my_xml.ignoreWhite = true; KPd中国设计秀
my_xml.load("PhotoList.xml"); KPd中国设计秀
my_xml.onLoad=function(success){ KPd中国设计秀
if (success){ KPd中国设计秀
//数组值添加 KPd中国设计秀
var xmlA:Array = this.firstChild.childNodes; KPd中国设计秀
var xmlALen:Number = xmlA.length; KPd中国设计秀
for (var i = 0; i<xmlALen; i++) { KPd中国设计秀
me.myUrl.push(xmlA[i].attributes.myUrl); KPd中国设计秀
//me.myInfo.push(xmlA[i].attributes.myInfo); KPd中国设计秀
} KPd中国设计秀
//发出事件给自身 KPd中国设计秀
me.dispatchEvent({type:"onPhotoListLoad", target:this}); KPd中国设计秀
} KPd中国设计秀
} KPd中国设计秀
} KPd中国设计秀
KPd中国设计秀
private function onPhotoListLoad():Void { KPd中国设计秀
//先建立放图片的的MC KPd中国设计秀
showImageBox = this.createEmptyMovieClip("showImageBox",ImageDepth); KPd中国设计秀
myLoading = showImageBox.createEmptyMovieClip("myLoading",ImageDepth+20); KPd中国设计秀
topMC = showImageBox.createEmptyMovieClip("topMC", ImageDepth+10); KPd中国设计秀
//topMC._x = 200; KPd中国设计秀
buttonMC = showImageBox.createEmptyMovieClip("buttonMC", ImageDepth); KPd中国设计秀
//导入图片(loadImage是自循环式函数) KPd中国设计秀
loadImage(); KPd中国设计秀
} KPd中国设计秀
KPd中国设计秀
private function loadImage():Void { KPd中国设计秀
//先取消定时器 KPd中国设计秀
clearInterval(_id); KPd中国设计秀
//取得对象自身,方便访问 KPd中国设计秀
var thisObject:Object = this; KPd中国设计秀
KPd中国设计秀
//循环控制(这里使用变换深度然后设置遮罩的方法) KPd中国设计秀
if ( imageID == myUrl.length ) imageID = 0; KPd中国设计秀
//第一次载入图片时不需要交换深度 KPd中国设计秀
if (firstLoadImage){ KPd中国设计秀
currentTopMC = topMC; KPd中国设计秀
firstLoadImage = false; KPd中国设计秀
}else{ KPd中国设计秀
//先交换深度 KPd中国设计秀
topMC.swapDepths(buttonMC); KPd中国设计秀
//再决定谁在上面 KPd中国设计秀
if ( topMC.getDepth() > buttonMC.getDepth() ){ KPd中国设计秀
currentTopMC = topMC; KPd中国设计秀
}else{ KPd中国设计秀
currentTopMC = buttonMC; KPd中国设计秀
} KPd中国设计秀
} KPd中国设计秀
KPd中国设计秀
//在上面的MC导入图片,因为遮罩只对处在上面的MC KPd中国设计秀
currentTopMC.loadMovie(myUrl[imageID]); KPd中国设计秀
//trace(topMC.getDepth()); KPd中国设计秀
KPd中国设计秀
imageID++; KPd中国设计秀
KPd中国设计秀
//导入图片 KPd中国设计秀
myLoading.onEnterFrame = function() { KPd中国设计秀
var lb:Number = thisObject.currentTopMC.getBytesLoaded(); KPd中国设计秀
var tb:Number = thisObject.currentTopMC.getBytesTotal(); KPd中国设计秀
var percent:Number = Math.round(lb/tb*100); KPd中国设计秀
if (percent == 100 and thisObject.currentTopMC.getBytesLoaded()>100 and thisObject.currentTopMC._height>0){ KPd中国设计秀
//特效显示图片 KPd中国设计秀
thisObject.showOff(thisObject.currentTopMC); KPd中国设计秀
//调用定时器控制图片showOff时间 KPd中国设计秀
thisObject._id = setInterval(thisObject,"loadImage", thisObject._showtime); KPd中国设计秀
//取消onEnterFrame KPd中国设计秀
delete this.onEnterFrame; KPd中国设计秀
} KPd中国设计秀
} KPd中国设计秀
} KPd中国设计秀
KPd中国设计秀
private function showOff(mc:MovieClip):Void { KPd中国设计秀
myMask = showImageBox.createEmptyMovieClip("myMask",ImageDepth+30); KPd中国设计秀
//随机给出遮罩方法(这个随机数的范围自己给出,大小为所有的方法数量和,我这里给了5种最基本的方法,读者可自行增加) KPd中国设计秀
var myRnd:Number = random(5); KPd中国设计秀
eval("showOff_"+myRnd)(myMask); KPd中国设计秀
//showOff_4(myMask); KPd中国设计秀
KPd中国设计秀
//速度控制 KPd中国设计秀
var v:Number = 10; KPd中国设计秀
KPd中国设计秀
//---------------------------------------------------------------- KPd中国设计秀
//方法一(左上至右下) KPd中国设计秀
function showOff_0(mc:MovieClip){ KPd中国设计秀
drawRectangleAt(mc); KPd中国设计秀
mc.onEnterFrame = function(){ KPd中国设计秀
if (_width >= Stage.width and _height >= Stage.height ) delete this.onEnterFrame; KPd中国设计秀
_width += v; KPd中国设计秀
_height += v; KPd中国设计秀
} KPd中国设计秀
} KPd中国设计秀
//方法二(左至右) KPd中国设计秀
function showOff_1(mc:MovieClip){ KPd中国设计秀
drawRectangleAt(mc); KPd中国设计秀
mc._height = Stage.height; KPd中国设计秀
mc.onEnterFrame = function(){ KPd中国设计秀
if (_width >= Stage.width) delete this.onEnterFrame; KPd中国设计秀
_width += v; KPd中国设计秀
} KPd中国设计秀
} KPd中国设计秀
//方法三(上至下) KPd中国设计秀
function showOff_2(mc:MovieClip){ KPd中国设计秀
drawRectangleAt(mc); KPd中国设计秀
mc._width = Stage.width; KPd中国设计秀
mc.onEnterFrame = function(){ KPd中国设计秀
if (_height >= Stage.height) delete this.onEnterFrame; KPd中国设计秀
_height += v; KPd中国设计秀
} KPd中国设计秀
} KPd中国设计秀
//方法四(下至上) KPd中国设计秀
function showOff_3(mc:MovieClip){ KPd中国设计秀
drawRectangleAt(mc); KPd中国设计秀
mc._y = Stage.height; KPd中国设计秀
mc._width = Stage.width; KPd中国设计秀
mc.onEnterFrame = function(){ KPd中国设计秀
if (_height >= Stage.height) delete this.onEnterFrame; KPd中国设计秀
_height += v; KPd中国设计秀
_y -= v; KPd中国设计秀
} KPd中国设计秀
} KPd中国设计秀
//方法五(右至左) KPd中国设计秀
function showOff_4(mc:MovieClip){ KPd中国设计秀
drawRectangleAt(mc); KPd中国设计秀
mc._x = Stage.width; KPd中国设计秀
mc._height = Stage.height; KPd中国设计秀
mc.onEnterFrame = function(){ KPd中国设计秀
if (_width >= Stage.width) delete this.onEnterFrame; KPd中国设计秀
_width += v; KPd中国设计秀
_x -= v; KPd中国设计秀
} KPd中国设计秀
} KPd中国设计秀
//-------------------------------------------------------------------------- KPd中国设计秀
KPd中国设计秀
//函数:画一个矩形,用来进行遮罩时的变形(当然你也可以用attachMovie从库里添加,这样你就可以做各种各样的形状。 KPd中国设计秀
//我在这个例子中强调的是脚本) KPd中国设计秀
function drawRectangleAt(mc:MovieClip){ KPd中国设计秀
with (mc){ KPd中国设计秀
lineStyle( 0, 0xffffff, 100 ); KPd中国设计秀
beginFill(0xffffff); KPd中国设计秀
moveTo( 0, 0 ); KPd中国设计秀
lineTo( 0, 10 ); KPd中国设计秀
lineTo( 10, 10 ); KPd中国设计秀
lineTo( 10, 0 ); KPd中国设计秀
lineTo( 0, 0 ); KPd中国设计秀
endFill(); KPd中国设计秀
} KPd中国设计秀
} KPd中国设计秀
KPd中国设计秀
//设置遮罩 KPd中国设计秀
//trace(mc); KPd中国设计秀
mc.setMask(myMask); KPd中国设计秀
} KPd中国设计秀
KPd中国设计秀
//setter方法 KPd中国设计秀
public function set showtime(i:Number):Void { KPd中国设计秀
_showtime = i; KPd中国设计秀
} KPd中国设计秀
}  
KPd中国设计秀