活着的死人 发表于 2015-1-15 20:39:11

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

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

演示:


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;



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;



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- 两个最主要的节省时间的方式。本质上,关键祯是动画中显著事件发生的位置。

再现理想 发表于 2015-2-26 09:03:54

所以不要使用不必要的高祯率 - 否则老的、慢的计算机在显示动画时会阻塞。

飘灵儿 发表于 2015-3-8 13:33:35

它包含了下列常见的形式之一或者几种的组合:流媒体、声音、Flash、以及Java、Javascript、DHTML等程序设计语言。  

乐观 发表于 2015-3-16 05:41:04

FLASH在网站建设中广泛的应用,但是FLASH也有自身的缺陷,尤其考虑到网络营销的综合效果时,FLASH 格式的广告并非最好的选择,有时甚至会降低广告效果。

小魔女 发表于 2015-3-22 21:08:17

Flash插件的最新版本允许设计者控制Box之外的元素和把Flash元素放在HTML或其它元素上面或下面,这就为交互性打开了一个崭新的世界。
页: [1]
查看完整版本: 来谈谈:AS3实例教程:分离基础的动画和AS3画图API-Flash actionscript