仓酷云

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

[学习教程] 来讲讲:FlashAS3.0实例教程:喷泉动画殊效-Flash实例教程

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-15 20:46:21 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
占用硬盘空间少,所以被广泛应用于游戏、网络视频、网站广告、交互设计等。
poluoluo中心提醒:这个Flash教程将使用AS3.0的速率向量和重置工具的技能来完成喷泉效果。
  先看效果演示:

  在这个实例教程中,我们将先容使用速率向量和重置工具的技能来完成喷泉效果。所谓向量就是无方向的量。好比一辆车从东向西以80千米每小时的速率行驶,那末我们就能够失掉汽车的速率向量,它包含两个元素:速率,每小时80千米,偏向,由东向西。

  上面我们来剖析一下喷泉是如何构成的。

  喷泉是多少个水珠向上放射,然后又受重力影响失落回空中。这个历程的速率向量有哪些,详细又是怎样的呢?很简单发明最少的两个力,一个是使水珠向上放射的外力,一个是使水珠失落回空中的重力。

  外力的速率向量:速率我设为10-20间的随机数,偏向是向上的那就必定是y轴上的正数了。将这个速率向量加到水珠上就使水珠向上放射了。

  详细做法是:在ENTER_FRAME事务中这水珠的y值加上-10到-20间的一个随机数。

  重力的速率向量:速率就对照小了我设为0.5,偏向则是y轴上的正值。一样加到ENTER_FRAME事务中,如许水珠在放射后就会失落回地上。

  另有个成绩,由于速率向量是加在ENTER_FRAME事务中的,水珠便可能一向按这些速率向量活动,面阔别舞台,那喷泉就不知会喷到甚么中央往了。

  要办理这个成绩,就要将超越舞台界限的水珠从头定位到放射口,如许就构成了不中断的放射了。

  好了,下面剖析了效果发生办法,上面就来制造。

  第一步是要画一个水珠,新建一个影片剪辑元件,用放射添补画一个椭圆,左色标为红色,通明度100%,右色标略带点灰色,通明度50%。在属性面板中设置椭圆在宽为2像素,高为5像素。在库中右击该元件,翻开毗连窗口,(cs4翻开属性窗口),设置一个类名,我设的是pall。

  接上去回到主场景,翻开帧举措面板,我们来写代码。

  喷泉是由多少水珠构成的,几呢?我整了500个:

  varcount:int=500;

  重力速率向量:

  varzl:Number=0.5;

  将这500个水珠放到一个数组中:

  varballs:Array;

  balls=newArray();

  用一个for轮回来将500个水珠放到数组中:

  for(vari:int=0;i<count;i++){

  varball:pall=newpall();

  将水珠定位到水珠的放射口:

  ball.x=260;

  ball.y=200;

  在x轴偏向也设一个速率向量,使水珠在x轴的必定局限内,并将这个速率向量存到每一个水珠的自界说属性vx中:

  ball["vx"]=Math.random()*2-1;

  上面是y轴偏向的速率向量,将它存在自界说属性vy中:

  ball["vy"]=Math.random()*-10-10;

  将水珠放到舞台上,并存到数组中:

  addChild(ball);

  balls.push(ball);

  接上去侦听ENTER_FRAME事务,完成喷泉效果:

  addEventListener(Event.ENTER_FRAME,onEnterFrame);

  onEnterFrame函数内容:

  经由过程一个for轮回为数组中的水珠加上各个速率向量:

  for(vari:Number=0;i<balls.length;i++){

  varball:pall=pall(balls);

  首选在放射速率向量上加上重力速率向量,如许每帧的工夫就会加一次重力,而放射力却没变,如许重力就会渐渐凌驾放射力面使水珠下跌:

  ball["vy"]+=zl;

  将x,y轴速率向量加到水珠上:

  ball.x+=ball["vx"];

  ball.y+=ball["vy"];

  接上去的是看水珠是不是超越了舞台,假如超越了舞台,则将水珠从头定位到放射口,并将速率向量设为初始形态。

  if(ball.x-ball.width/2>stage.stageWidth||

  ball.x+ball.width/2<0||

  ball.y-ball.width/2>stage.stageHeight||

  ball.y+ball.width/2<0){

  ball.x=260;

  ball.y=200;

  ball["vx"]=Math.random()*2-1;

  ball["vy"]=Math.random()*-10-10;

  完全代码:

varcount:int=500;varzl:Number=0.5;
varballs:Array;
balls=newArray();
for(vari:int=0;i<count;i++){
varball:pall=newpall();
ball.x=260;
ball.y=200;
ball["vx"]=Math.random()*2-1;
ball["vy"]=Math.random()*-10-10;
addChild(ball);
balls.push(ball);
}
addEventListener(Event.ENTER_FRAME,onEnterFrame);
functiononEnterFrame(event:Event):void{
for(vari:Number=0;i<balls.length;i++){
varball:pall=pall(balls);
ball["vy"]+=zl;
ball.x+=ball["vx"];
ball.y+=ball["vy"];
if(ball.x-ball.width/2>stage.stageWidth||
ball.x+ball.width/2<0||
ball.y-ball.width/2>stage.stageHeight||
ball.y+ball.width/2<0){
ball.x=260;
ball.y=200;
ball["vx"]=Math.random()*2-1;
ball["vy"]=Math.random()*-10-10;
}
}
}
用flash动画制作软件制作的动画文件很小,这样便于在互联网上传输,而且它采用了流技术,只要下载一部分,就能欣赏动画,而且能一边播放一边传输送数据。
海妖 该用户已被删除
8#
发表于 2015-3-28 21:03:27 | 只看该作者
Flash流行的主要原因是它使用了矢量图形(与位图相反)。因为这种图形格式比位图小得多,而且在缩放时对图形质量影响不大,所以很适合对带宽要求很高的Web。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-19 14:07:41 | 只看该作者
时间期限本身就是一个优点,因为它可以让你确定一个祯率。电视每秒刷新屏幕30次,电影每秒刷新屏幕24次。Flash的祯率是可变的。
admin 该用户已被删除
6#
发表于 2015-3-11 20:54:36 | 只看该作者
FLASH的优点~你用眼睛所看到的东西~都能用它来实现~一点不夸张~高楼大厦-花草树木-高山流水-天空白云-阿猫阿狗-一切活的东西都可以容入到FLASH里面
若相依 该用户已被删除
5#
发表于 2015-3-4 20:14:14 | 只看该作者
不过,要说国内在FLASH动画领域做的比较出色的,公认的是广州形动数码科技。
精灵巫婆 该用户已被删除
地板
发表于 2015-2-16 00:28:44 | 只看该作者
对插件的批评之一是他们一般出现在称为Box的网页的一个预定的区域。虽然在某种情况下表现不错,但Box经常以罪魁祸首的面目出现。
莫相离 该用户已被删除
板凳
发表于 2015-2-6 10:23:46 | 只看该作者
FLASH网站建设的页面非常美观,互动性很强。在企业网站中,FLASH动画作用主要在于突出企业品牌的效应,彰显企业形象的实力。
爱飞 该用户已被删除
沙发
发表于 2015-1-30 10:15:12 | 只看该作者
传播上的优势——无国界跨媒体;创作群体的形成;媒体及比赛的推进
灵魂腐蚀 该用户已被删除
楼主
发表于 2015-1-17 14:14:31 | 只看该作者
只要用心只要努力在加上你无限的创意和想象。FLASH无敌了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 20:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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