仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1004|回复: 7
打印 上一主题 下一主题

[学习教程] 来谈谈:AS3实例教程:分离基础的动画和AS3画图API-Flash actionscript

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 20:39:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
若你要观看网页上的多媒体内容,Flashplayer几乎是网络上的标准。为此播放器所制作的动画或图像十分常见。
poluoluo中心提醒:这是一个粒子效果实例教程,进修怎样分离基础的动画和ActionScript3画图API。
 这是一个粒子效果实例教程,进修怎样分离基础的动画和ActionScript3画图API。

演示:
[media=wmv,550,400][/media]

9、为粒子到场连线,修正enterFrameHandler,代码以下:

functionenterFrameHandler(e:Event):void{



//Clearthepreviouslines

graphics.clear();



//Let’sloopthroughtheparticles

for(i=0;i<particlesArray.length;i++){



varparticleOne:Particle=particlesArray;

//Movetheparticletoanewlocation

particleOne.x+=particleOne.speedX;

particleOne.y+=particleOne.speedY;



//Checktheboundaries

if(particleOne.x>stage.stageWidth){

particleOne.x=stage.stageWidth-particleOne.width/2;

particleOne.speedX*=-1;

}

elseif(particleOne.x<0){

particleOne.x=particleOne.width/2;

particleOne.speedX*=-1;

}

if(particleOne.y>stage.stageHeight){

particleOne.y=stage.stageHeight-particleOne.width/2;

particleOne.speedY*=-1;

}

elseif(particleOne.y<0){

particleOne.y=particleOne.width/2;

particleOne.speedY*=-1;

}



//Gothroughtheotherparticlestocheckthedistancewiththefirstparticle

for(varj:uint=i+1;j<particlesArray.length;j++){



varparticleTwo:Particle=particlesArray[j];



vardistanceX:Number=particleOne.x-particleTwo.x;

vardistanceY:Number=particleOne.y-particleTwo.y;

//UsePythagoreantheorem(a^2+b^2=c^2)tocalculatethedistance

vardistance:Number=Math.sqrt(distanceX*distanceX+distanceY*distanceY);



//Ifthedistanceissmallerthan80px,drawalinebetweentheparticles

if(distance<80){

drawLine(particleOne,particleTwo);

}

}

}

}



在enterFrameHandler以后增加办法drawLine完成画线功效。



//Thisfunctiondrawsablacklinebetweentwoparticles

functiondrawLine(particleOne:Particle,particleTwo:Particle):void{

graphics.lineStyle(1,0x000000);//线为红色,如玄色背景改成0xffffff

graphics.moveTo(particleOne.x,particleOne.y);

graphics.lineTo(particleTwo.x,particleTwo.y);

}10、测试影片剪辑。

完全主类代码:

//Weneedfewimportsforthefilters

importfl.motion.Color;

importflash.geom.ColorTransform;



//Createanarrayfortheparticlesforlateruse

varnumberOfParticles:Number=30;

varparticlesArray:Array=newArray();



//Thisloopcreates30particlesthatarepositionedrandomlyonthestage.

//Wealsoaddsomeeffectstotheparticles

for(vari=0;i<numberOfParticles;i++){



varparticle:Particle=newParticle();



//Giverandomxandyspeedtotheparticle.

//Math.randomreturnsarandomnumbern,where0<=n<1.

particle.speedX=2+Math.random();

particle.speedY=2+Math.random();



//Setthestartingposition

particle.y=Math.random()*stage.stageHeight;

particle.x=Math.random()*stage.stageWidth;



//Setarandomtinttotheparticle,sotheywillhavedifferentcolors.

varct:Color=newColor();

ct.setTint(0xFFFFFF*Math.random(),0.5);

particle.transform.colorTransform=ct;



//Setrandomsizetotheparticles,sotheparticleswilldifferinsize

particle.scaleX=0.5+Math.random();

particle.scaleY=particle.scaleX;



//Thisarrayisusedtostoreallofthefilters

varparticleFilters:Array=newArray();



//Createadifferentblureffectineachparticle

vartempBlurAmount=Math.random()*4;

varblur:BlurFilter=newBlurFilter(tempBlurAmount,tempBlurAmount,1);

particleFilters.push(blur);



//Createagloweffectineachparticle

varcolor:Number=0x000000;

varalphaValue:Number=0.5;

varblurX:Number=20;

varblurY:Number=20;

varstrength:Number=5;

varglow:GlowFilter=newGlowFilter(color,

alphaValue,

blurX,

blurY,

strength);



particleFilters.push(glow);



//Applythecreatedfilterstotheparticle(blur&glow)

particle.filters=particleFilters;



//Addtheparticletothestageandpushitintoanarrayforlateruse

addChild(particle);

particlesArray.push(particle);

}



addEventListener(Event.ENTER_FRAME,enterFrameHandler);



//Thisfunctionisresponsibleforanimation

functionenterFrameHandler(e:Event):void{



//Clearthepreviouslines

graphics.clear();



//Let’sloopthroughtheparticles

for(i=0;i<particlesArray.length;i++){



varparticleOne:Particle=particlesArray;

//Movetheparticletoanewlocation

particleOne.x+=particleOne.speedX;

particleOne.y+=particleOne.speedY;



//Checktheboundaries

if(particleOne.x>stage.stageWidth){

particleOne.x=stage.stageWidth-particleOne.width/2;

particleOne.speedX*=-1;

}

elseif(particleOne.x<0){

particleOne.x=particleOne.width/2;

particleOne.speedX*=-1;

}

if(particleOne.y>stage.stageHeight){

particleOne.y=stage.stageHeight-particleOne.width/2;

particleOne.speedY*=-1;

}

elseif(particleOne.y<0){

particleOne.y=particleOne.width/2;

particleOne.speedY*=-1;

}



//Gothroughtheotherparticlestocheckthedistancewiththefirstparticle

for(varj:uint=i+1;j<particlesArray.length;j++){



varparticleTwo:Particle=particlesArray[j];



vardistanceX:Number=particleOne.x-particleTwo.x;

vardistanceY:Number=particleOne.y-particleTwo.y;

//UsePythagoreantheorem(a^2+b^2=c^2)tocalculatethedistance

vardistance:Number=Math.sqrt(distanceX*distanceX+distanceY*distanceY);



//Ifthedistanceissmallerthan80px,drawalinebetweentheparticles

if(distance<80){

drawLine(particleOne,particleTwo);

}

}

}

}



//Thisfunctiondrawsablacklinebetweentwoparticles

functiondrawLine(particleOne:Particle,particleTwo:Particle):void{

graphics.lineStyle(1,0x000000);

graphics.moveTo(particleOne.x,particleOne.y);

graphics.lineTo(particleTwo.x,particleTwo.y);

}

要在Flash中构建应用程序,可以使用Flash绘图工具创建图形,并将其它媒体元素导入Flash文档。接下来,定义如何以及何时使用各个元素来创建设想中的应用程序。
若相依 该用户已被删除
沙发
发表于 2015-1-17 13:29:02 | 只看该作者
没有安装FLASH插件的前提下,无法正常显示广告效果。根据调查显示,有3%的互联网用户没有安装shockwaveFlash。虽然比例不大,但不能因为这样一个简单的原因而拒绝这些用户。
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-25 15:44:21 | 只看该作者
中坚的程序员趋向于嘲笑脚本语言,但是对于那些没有计算机科学学位的人来说,脚本语言可能使他们头疼。
莫相离 该用户已被删除
地板
发表于 2015-2-8 20:38:45 | 只看该作者
作为奖赏,你可以使用关键祯动画支持和tweening- 两个最主要的节省时间的方式。本质上,关键祯是动画中显著事件发生的位置。
再现理想 该用户已被删除
5#
发表于 2015-2-26 09:03:54 | 只看该作者
所以不要使用不必要的高祯率 - 否则老的、慢的计算机在显示动画时会阻塞。
飘灵儿 该用户已被删除
6#
发表于 2015-3-8 13:33:35 | 只看该作者
它包含了下列常见的形式之一或者几种的组合:流媒体、声音、Flash、以及Java、Javascript、DHTML等程序设计语言。  
乐观 该用户已被删除
7#
发表于 2015-3-16 05:41:04 | 只看该作者
FLASH在网站建设中广泛的应用,但是FLASH也有自身的缺陷,尤其考虑到网络营销的综合效果时,FLASH 格式的广告并非最好的选择,有时甚至会降低广告效果。
小魔女 该用户已被删除
8#
发表于 2015-3-22 21:08:17 | 只看该作者
Flash插件的最新版本允许设计者控制Box之外的元素和把Flash元素放在HTML或其它元素上面或下面,这就为交互性打开了一个崭新的世界。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-29 07:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表