Flashas30实例教程100例.docx

上传人:b****2 文档编号:17019302 上传时间:2023-07-21 格式:DOCX 页数:281 大小:111.59KB
下载 相关 举报
Flashas30实例教程100例.docx_第1页
第1页 / 共281页
Flashas30实例教程100例.docx_第2页
第2页 / 共281页
Flashas30实例教程100例.docx_第3页
第3页 / 共281页
Flashas30实例教程100例.docx_第4页
第4页 / 共281页
Flashas30实例教程100例.docx_第5页
第5页 / 共281页
Flashas30实例教程100例.docx_第6页
第6页 / 共281页
Flashas30实例教程100例.docx_第7页
第7页 / 共281页
Flashas30实例教程100例.docx_第8页
第8页 / 共281页
Flashas30实例教程100例.docx_第9页
第9页 / 共281页
Flashas30实例教程100例.docx_第10页
第10页 / 共281页
Flashas30实例教程100例.docx_第11页
第11页 / 共281页
Flashas30实例教程100例.docx_第12页
第12页 / 共281页
Flashas30实例教程100例.docx_第13页
第13页 / 共281页
Flashas30实例教程100例.docx_第14页
第14页 / 共281页
Flashas30实例教程100例.docx_第15页
第15页 / 共281页
Flashas30实例教程100例.docx_第16页
第16页 / 共281页
Flashas30实例教程100例.docx_第17页
第17页 / 共281页
Flashas30实例教程100例.docx_第18页
第18页 / 共281页
Flashas30实例教程100例.docx_第19页
第19页 / 共281页
Flashas30实例教程100例.docx_第20页
第20页 / 共281页
亲,该文档总共281页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Flashas30实例教程100例.docx

《Flashas30实例教程100例.docx》由会员分享,可在线阅读,更多相关《Flashas30实例教程100例.docx(281页珍藏版)》请在冰点文库上搜索。

Flashas30实例教程100例.docx

Flashas30实例教程100例

实例一利用缓动类实现图片滚动点击放大效果

//缓动类不在flash包中在fl包中所以要先导入

importfl.transitions.Tween。

//导入缓动类

importfl.transitions.TweenEvent。

//导入缓动事件

importfl.transitions.easing.Regular。

//导入缓动效果中有规律的

vararrTupian:

Array=[]。

//存放图片的数组

vartweenscaleX:

Tween。

//用来控制图片宽高的缓动类

vartweenscaleY:

Tween。

vardatu:

MovieClip。

for(vari:

int=0。

i<8。

i++>{

varxiaotu:

MovieClip=newPic(>。

//这里Pic是库中一个存放图片的类文件

addChild(xiaotu>。

xiaotu.gotoAndStop(i+1>。

xiaotu.width=120。

xiaotu.height=100。

xiaotu.x=xiaotu.width/2+i*(xiaotu.width+10>。

xiaotu.y=420。

arrTupian.push(xiaotu>。

xiaotu.addEventListener(Event.ENTER_FRAME,dongf>。

//为每个小球添加移动帧频函数

}

functiondongf(e>{

varmc:

MovieClip=e.target。

mc.x-=6。

if(mc.x<0-(xiaotu.width/2+10>>{//如果该图片出了场景则放在最后一张图片的位置

mc.x=xiaotu.width/2+7*(xiaotu.width+10>。

}

mc.buttonMode=true。

mc.addEventListener(MouseEvent.MOUSE_OVER,overf>。

///鼠标移过时候停止移动

mc.addEventListener(MouseEvent.MOUSE_OUT,outf>。

//

}

functionoverf(e>{

for(i=0。

i

i++>{

//注意是点击一张图片应该让所有的图片都移除移动的侦听

arrTupian[i].removeEventListener(Event.ENTER_FRAME,dongf>。

arrTupian[i].removeEventListener(MouseEvent.MOUSE_OVER,overf>。

//注意也要把移过函数移除,等下次再调用再添加防止下面的效果还没有达到又开始此函数

}

//此时大图出现

datu=newPic(>。

datu.gotoAndStop(arrTupian.indexOf(e.target>+1>。

addChild(datu>。

datu.x=stage.stageWidth/2。

datu.y=200。

tweenscaleX=newTween(datu,"scaleX",Regular.easeOut,1,3,0.5,true>。

//参数从1倍扩大到3倍

tweenscaleY=newTween(datu,"scaleY",Regular.easeOut,1,3,0.5,true>。

//参数分别是对象,属性,缓动类型,开始参数,结束参数,缓动事件,true表示为单位为妙false表示为帧

}

functionoutf(e>{

e.target.removeEventListener(MouseEvent.MOUSE_OVER,overf>。

e.target.removeEventListener(MouseEvent.MOUSE_OVER,outf>。

tweenscaleX=newTween(datu,"scaleX",Regular.easeOut,3,1,0.5,true>。

//开始和结束的参数反过来则实现了缩小的效果

tweenscaleY=newTween(datu,"scaleY",Regular.easeOut,3,1,0.5,true>。

//tweenScaleX=newTween.yoyo(>或者用这个方法,表示实现原来缓动的相反过程

//tweenScaleY=newTween.yoyo(>

tweenscaleX.addEventListener(TweenEvent.MOTION_FINISH,fishf>。

}

functionfishf(e>{

removeChild(datu>。

datu=null。

//注意从显示列表中清除后,

//元件本身还有东西,因此还要把大图元件清空

for(i=0。

i

i++>{

arrTupian[i].addEventListener(Event.ENTER_FRAME,dongf>。

}

实例二利用timer类实现图片的切换

场景中有一个pic图片多帧元件,currnum和totalnum两个动态文本speed输入文本,一个msg动态文本

vartimer:

Timer。

speed.text="2"//播放的初始速度为1000毫秒

btn.addEventListener(MouseEvent.CLICK,f>。

functionf(e>{

msg.text=""

timer=newTimer(1000*Number(speed.text>,pic.totalFrames>。

//计时器运行的时间单位都是毫秒,因此输入的速度都是秒应该再乘以1000.

//输入的文本都是字符串因此要转化成数字

timer.start(>。

timer.addEventListener(TimerEvent.TIMER,timerf>。

timer.addEventListener(TimerEvent.TIMER_COMPLETE,comf>//添加一个播放完后的函数

}

functiontimerf(e>{

pic.gotoAndStop(timer.currentCount>。

//图片播放的张数及为计时器运行的当前次数

//例如运行一次既是第一张,两次则为第二张

currnum.text=String(timer.currentCount>。

totalnum.text=String(timer.repeatCount>。

//计时器总共运行的次数

}

functioncomf(e>{

msg.text="图片已经播放完毕谢谢欣赏"//信息文本框的文本显示内容

}

varformat:

TextFormat=newTextFormat("Impact",15,0xff00ff,true>。

vartxt:

TextField=newTextField(>。

addChildAt(txt,numChildren-1>。

txt.text="这里随便写些东西"。

txt.wordWrap=true。

txt.setTextFormat(format>。

txt.width=txt.textWidth。

txt.height=txt.textHeight。

txt.x=10,txt.y=33。

实例三点击小图看大图效果

vartargetArr:

Array=[]。

varpointArr:

Array=[]。

varpicArr:

Array=[]。

varindex:

int。

vartargetPoint=newPoint(275,200>。

for(vari:

int=0。

i<20。

i++>{

varpoint:

Point=newPoint(>。

vartargetP:

Point=newPoint(>。

//varC:

Class=getDefinitionByName("cat"+i>asClass。

/加载同路径文件夹中的名字为cat+i20张的图片

varbmd:

BitmapData=newC(0,0>。

//库中一个图片类文件

varbmp:

Bitmap=newBitmap(bmd>。

varmc:

MovieClip=newMovieClip(>。

addChild(mc>。

mc.addChild(bmp>。

bmp.x=-bmp.width/2。

bmp.y=-bmp.height/2。

mc.scaleX=mc.scaleY=.4。

i<6?

(mc.x=2.5+mc.width/2+i*(mc.width+10>,mc.y=mc.height/2>:

0。

//上面六个图片的位置,坐标为图片的中心

i>=6&&i<10?

(mc.x=550-mc.width/2-2.5,mc.y=mc.height/2+mc.height+8+(i-6>*(mc.height+8>>:

0。

//右边四张图片的坐标

i>=10&&i<16?

(mc.x=550-mc.width/2-2.5-(i-10>*(mc.width+10>,mc.y=400-mc.height/2>:

0。

//下面六张图片坐标

i>=16&&i<20?

(mc.x=mc.width/2+2.5,mc.y=400-mc.height/2-mc.height-8-(i-16>*(mc.height+8>>:

0。

//左边四张图片的坐标

point.x=targetP.x=mc.x,point.y=targetP.y=mc.y。

//记录此时每张图片的位置

mc.mouseChildren=false。

mc.n=i。

//定义mc的私有属性记录每张图片的索引值

picArr.push(mc>。

//

targetArr.push(targetP>。

pointArr.push(point>。

}

vartimer:

Timer=newTimer(1000>。

timer.start(>。

timer.addEventListener(TimerEvent.TIMER,picMove>。

vark:

int=0。

functionpicMove(e>{//图片移动效果

k++。

for(varj:

int=0。

j

j++>{

targetArr[j].x=pointArr[(k+j>%pointArr.length].x。

//当前点的坐标随着k的增加等于目标点坐标循环变换

targetArr[j].y=pointArr[(k+j>%pointArr.length].y。

if(picArr[j].x==275&&picArr[j].y==200>{//说明是中心位置的图片

continue。

}else{//说明是周围的图片

picArr[j].x=pointArr[(k+j>%pointArr.length].x。

//让每张图片的坐标循环变换

picArr[j].y=pointArr[(k+j>%pointArr.length].y。

}

}

}

for(i=0。

i

i++>{

picArr[i].buttonMode=true。

picArr[i].addEventListener(MouseEvent.CLICK,clickF>。

}

functionclickF(e>{

setChildIndex(e.target,numChildren-2>。

//先把当前被点击的图片放在第二层

objMove(e.target,targetPoint,1,1>。

if(picArr[index].x==275,picArr[index].y==200>{

objMove(picArr[index],targetArr[index],.15,.15>。

}

index=e.target.n。

}

functionobjMove(displayObject:

DisplayObject,targetObj:

Point,targetScalex:

Number,targetScaley:

Number>{

///**/参数分别是当前对象,当前点,x方向的缩放值,y方向上的缩放值

timer.stop(>。

//先让计时器停止,即点击图片动画过程中让图片移动的事件停止

displayObject.addEventListener(Event.ENTER_FRAME,frame>。

functionframe(e>{

for(vari:

int=0。

i

i++>{

picArr[i].mouseEnabled=false。

picArr[i].buttonMode=false。

picArr[i].removeEventListener(MouseEvent.CLICK,clickF>。

//

点击每张图片后马上先移除点击事件

}

e.target.x+=(targetObj.x-e.target.x>/5。

//缓动公式实现缓动效果

e.target.y+=(targetObj.y-e.target.y>/5。

e.target.scaleX+=(targetScalex-e.target.scaleX>/5。

e.target.scaleY+=(targetScaley-e.target.scaleY>/5。

vardis:

Number=Math.sqrt((targetObj.x-e.target.x>*(targetObj.x-e.target.x>+(targetObj.y-e.target.y>*(targetObj.y-e.target.y>>。

if(Math.abs(dis><1>{//目标点和当前点的距离

e.target.x=targetObj.x。

e.target.y=targetObj.y。

displayObject.removeEventListener(Event.ENTER_FRAME,frame>。

//图片达到目标点后移除该帧频事件

trace("ok">。

for(i=0。

i

i++>{//然后给每张图片再重新添加点击事件

picArr[i].addEventListener(MouseEvent.CLICK,clickF>。

picArr[i].buttonMode=true。

picArr[i].mouseEnabled=true。

}

timer.start(>。

//计时器开始运行,即周围图片继续移动

}

}

}

varsp:

Sprite=newSprite(>。

//画相框

addChild(sp>。

sp.x=275。

sp.y=200。

sp.graphics.lineStyle(15,0xb66700>。

sp.graphics.drawRect(-174,-124,348,248>。

sp.graphics.lineStyle(2,0xa95401>。

sp.graphics.drawRoundRect(-177,-127,354,254,10,10>。

sp.graphics.lineStyle(3,0xa95401>。

sp.graphics.drawRoundRect(-173,-123,346,246,10,10>。

sp.graphics.lineStyle(1.5,0xa95401>。

sp.graphics.moveTo(-178,-128>。

sp.graphics.lineTo(-168,-118>。

sp.graphics.moveTo(178,-128>。

sp.graphics.lineTo(168,-118>。

sp.graphics.moveTo(178,128>。

sp.graphics.lineTo(168,118>。

sp.graphics.moveTo(-178,128>。

sp.graphics.lineTo(-168,118>。

sp.filters=[newBevelFilter(3,45,0xff9900,1,0x660000,1,5,5,1,3>,newDropShadowFilter(4,45,0,1,5,5,.5,3>]。

//=======

varformat:

TextFormat=newTextFormat("Impact",15,0xff00ff,true>。

vartxt:

TextField=newTextField(>。

addChildAt(txt,numChildren-1>。

txt.text="这里随便写些东西"。

txt.wordWrap=true。

txt.setTextFormat(format>。

txt.width=txt.textWidth。

txt.height=txt.textHeight。

txt.x=10,txt.y=33。

实例四条形遮罩

constW:

Number=stage.stageWidth。

constH:

Number=stage.stageHeight。

varpicSpr:

Sprite=addChild(newSprite(>>asSprite。

//用来装矩形条的容器

varpic1:

MovieClip=picSpr.addChild(newPic(>>asMovieClip。

//实例化两个图集

varpic2:

MovieClip=picSpr.addChild(newPic(>>asMovieClip。

varmaskSpr:

Sprite=picSpr.addChild(newSprite(>>asSprite。

pic2.gotoAndStop(3>。

//因为遮罩另一个图集所以先把另一个跳转到第二帧

pic2.mask=maskSpr。

//矩形条容器遮罩图集二

//=====画矩形条函数

functionRect(w:

Number,h:

Number>:

Sprite{

varrect:

Sprite=maskSpr.addChild(newSprite(>>asSprite。

rect.graphics.beginFill(0>。

rect.graphics.drawRect(0,0,w,h>。

rect.graphics.endFill(>。

returnrect。

}

varnum:

uint=80。

//矩形条的总条数

varrw:

Number=W/num。

//竖条的宽度

varrh:

Number=H/num。

//横条的宽度

varn:

uint=0。

//用来控制矩形的条数变化

varbl:

Boolean=true。

//用来控制矩形条的偶数情况和奇数情况

vara:

uint=4*Math.random(>。

//矩形条的从四种不同方向出现

vartimerA:

Timer=newTimer(40,80>。

//控制每一个矩形条出现的时间,共执行八十次

vartimerB:

Timer=newTimer(3000,1>。

//用来控制每一个效果完成后间隔的时间

timerA.start(>。

timerA.addEventListener(TimerEvent.TIMER,ttA>。

functionttA(evt:

TimerEvent>:

void{

varrectH:

Sprite=Rect(rw,H>。

//实例化竖条

varrectW:

Sprite=Rect(W,rh>。

//实例化横条

switch(a>{

case0:

if(bl==true>{//当为真时,出现奇数条第一种效果从左上角出现

rectH.x=2*n*rw。

//横坐标以竖条的宽度2倍增加即每隔一个宽度增加一个

rectW.y=2*n*rh。

//同上

2*n==num-2?

[n=0,bl=false]:

0。

//当n增加到最大值时,变为逆向出现偶竖条

}else{

rectH.x=W-(2*n-1>*rw。

rectW.y=H-(2*n-1>*rh。

}

break。

case1:

if(bl==true>{//第二种效果从右下角出现

rectH.x=W-(2*n+1>*rw。

//

rectW.y=H-(2*n+1>*rh。

2*n==num-2?

[n=0,bl=false]:

0。

}else{

rectH.x=(2*n-1>*rw。

rectW.y=(2*n-1>*rh。

}

break。

case2:

if(bl==true>{//第三种效果从左下角出现

rectH.x=2*n*rw。

rectW.y=H-(2*n+1>*rh。

2*n==num-2?

[n=0,bl=false]:

0。

}else{

rectH.x=W-(2*n-1>*rw。

rectW.y=2*(n-1>*rh。

}

break。

default:

if(bl==true>{//第四种效果从右上角出现

rectH.x=W-(2*n+1>*rw。

rectW.y=2*n*rh。

2*n==num-2?

[n=0,bl=false]:

0。

}else{

rectH.x=2*(n-1>*rw。

rectW.y=H-(2*n-1>*rh。

}

}

n++。

if(timerA.currentCount==timerA.repeatCount>{//如果当前执行次数等于总次数说明已经完成了实例化的80条矩形条

for(vari:

uint=maskSpr.numChildren。

i>0。

i-->{//就删除所有的矩形条

maskSpr.removeChildAt(0>。

}

pic1.currentFrame==pic1.totalFrames?

pic1.gotoAndStop(1>:

pic1.nextFrame(>。

//图片集播放到末尾循环从头开始

pic2.currentFrame==pic2.totalFrames?

pic2.gotoAndStop(1>:

pic2.nextFrame(>。

timerB.start(>。

//添加第二个时间侦听器间隔时间为3秒

}

}

timerB.addEventListener(TimerEvent.TIMER,ttB>。

functionttB(evt:

TimerEvent>:

void{

a=4*Math.random(>。

n=0。

bl=true。

timerA.reset(>。

timer

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2