仓酷云

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

[学习教程] 带来一篇Flash AS3教程:制造鼠标感到图片动弹-Flash实例教程

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 20:47:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
若你要观看网页上的多媒体内容,Flashplayer几乎是网络上的标准。为此播放器所制作的动画或图像十分常见。
poluoluo中心提醒:FlashAS3教程:制造鼠标感到图片动弹.
  实例效果是图片在一个程度面上绕Y轴一圈,并用鼠标把持这些图片绕轴扭转.
  图片分列情况

  详细步骤:
  起首创建一个影片,然后创立一个2帧的影片剪接元件picBox,在第一帧设置stop()代码,并为该影片创立毗连类名picBox.以下图



  好,完成下面后在同目次下新建一个剧本文件picBox.as
  package{
  importflash.display.MovieClip;
  importflash.display.Loader;
  importflash.net.URLRequest;
  importflash.events.Event;
  importflash.events.MouseEvent;
  importflash.net.navigateToURL;
  //界说类picBox:这是一个画框,完成了三维坐标转化为二维坐标,还撑持鼠标事务
  publicclasspicBoxextendsMovieClip{
  //界说属性
  publicvartx:Number;//三维空间之x坐标
  publicvarty:Number;//三维空间之y坐标
  publicvartz:Number;//三维空间之z坐标
  publicvarangle:Number;//工具在圆周上散布的弧度
  publicvarradius:uint;//圆弧的半径
  privatevarloadPic:Loader;//用于导进内部图象
  //机关函数:导进图象
  publicfunctionpicBox(picURL:String){
  loadPic=newLoader();
  varurl:URLRequest=newURLRequest(picURL);
  loadPic.contentLoaderInfo.addEventListener(Event.COMPLETE,loaded);
  loadPic.load(url);
  }
  //导进图象,注册画框工具上的鼠标事务
  privatefunctionloaded(e:Event){
  //调剂图象巨细,稍小于画框
  e.target.content.width=100;
  e.target.content.height=120;
  //定位图象
  loadPic.x-=100/2;
  loadPic.y-=120/2;
  this.addChild(loadPic);
  //注册画框工具上的鼠标事务
  loadPic.addEventListener(MouseEvent.MOUSE_OVER,overHd);
  loadPic.addEventListener(MouseEvent.MOUSE_OUT,outHd);
  }
  //滑过画框,边框变色
  privatefunctionoverHd(e:MouseEvent){
  this.gotoAndStop(2);
  }
  //滑出画框,边框恢复
  privatefunctionoutHd(e:MouseEvent){
  this.gotoAndStop(1);
  }
  //依据变更后的角度和焦距盘算二维的舞台坐标
  publicfunctiondisplayPane(spin,focalLength){//参数:角度偏移量,焦距
  //盘算新角度,并求新的空间坐标
  varcurrAngle:Number=angle-spin;
  tx=Math.cos(currAngle)*this.radius;
  tz=Math.sin(currAngle)*this.radius;
  //盘算比率:画框工具离察看者由近~远-(-150,150),scaleRatio取值-[500/350,500/650]
  varscaleRatio:Number=focalLength/(focalLength+tz);
  //依据比率盘算并设置立体坐标地位、巨细比例
  this.x=tx*scaleRatio;
  this.y=ty*scaleRatio;
  this.scaleX=this.scaleY=scaleRatio;
  //把持画框在y=0的地位翻转
  this.scaleX*=Math.sin(currAngle);
  //再次翻转,使图片位于后面时不是反图
  this.scaleX*=Math.sin(currAngle);
  }
  }
  }
  然后再新建一个main.as,并在影片文件设置文档类名main
  package{
  importflash.display.Sprite;
  importflash.events.Event;
  //界说文档类:创立画框工具,匀称散布在假造的y=100立体上并依据鼠标地位产生扭转
  publicclassmainextendsSprite{
  //界说属性
  privatevarpicnum:uint=8//画框数目
  privatevarpics:Sprite=newSprite();//包容画框,在个中假造的y=100立体上散布
  privatevarpicBoxArr:Array=newArray();//画框的援用数组
  privatevarspin:Number=0;//角度偏移量
  privatevarfocalLength:uint=500;//焦距
  privatevarangleStep:Number=2*Math.PI/picnum;//画框散布时,间距角度
  privatevarzArr:Array=newArray();//暂存画框工具及tz值,用于从头调剂地位索引
  //机关函数:在年夜容器pics内创立画框,并分派初始值
  publicfunctionmain(){
  //定位年夜容器到舞台
  pics.x=270;
  pics.y=80;
  addChild(pics);
  //创立画框工具并增加到年夜容器内
  for(vari:uint;i<picnum;i++){
  //画框上待显现的图象路径
  varpic:String="picimage"+i+".jpg";
  //创立画框工具
  varnewBox:picBox=newpicBox(pic);
  //初始化工具的属性
  newBox.angle=angleStep*i;
  newBox.radius=150;
  newBox.tx=Math.cos(newBox.angle)*newBox.radius;//利用圆的参数方程盘算坐标
  newBox.tz=Math.sin(newBox.angle)*newBox.radius;
  newBox.ty=100;
  //将新工具援用保留在数组
  picBoxArr.push(newBox);
  pics.addChild(newBox);
  }
  //在年夜容器上注册ENTER_FRAME事务,随时改动角度从而产生扭转
  pics.addEventListener(Event.ENTER_FRAME,panCamera);
  }
  //ENTER_FRAME事务处置函数,挪用画框工具的displayPane办法,改动本身地位
  privatefunctionpanCamera(e:Event){
  //依据鼠标地位调治角度偏移量
  spin+=(mouseX-stage.stageWidth/2)/2000;
  //改动画框工具的坐标
  for(vari:uint;i<picBoxArr.length;i++){
  picBoxArr.displayPane(spin,focalLength);
  }
  //从头分列工具的地位索引
  replace();
  }
  //从头分列工具的地位索引
  privatefunctionreplace(){
  //暂存各工具援用及z轴地位信息
  for(vari:uint;i<picBoxArr.length;i++){
  zArr={p:picBoxArr,pz:picBoxArr.tz};
  }
  //依据z轴地位,按数字排序,数字年夜者靠后
  zArr.sortOn("pz",Array.NUMERIC);
  //从头分列工具的地位索引,数字小的离察看近,索引号较年夜
  for(i=0;i<picBoxArr.length;i++){
  pics.setChildIndex(zArr.p,picBoxArr.length-i-1);
  }
  }
  }
  }
  最后的效果:

[media=wmv,550,400][/media]

AdobeFlashProfessionalCS5.5软件可以提供行业领先、用于制作具有表现力的交互式内容的授权环境。
莫相离 该用户已被删除
沙发
发表于 2015-1-17 14:19:20 | 只看该作者
flash的优缺点可以如何运用呢?
变相怪杰 该用户已被删除
板凳
发表于 2015-2-2 11:32:17 | 只看该作者
祯率越高,动画中可包容的信息越多,动画看起来越光滑和流畅。当然,当祯率增加时,计算机的CPU的重绘工作越多,运行得就越慢。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-7 20:23:59 | 只看该作者
还有,艺术上的优势——各异的风格;创作手法独特;独立性和原创性;拓展出新的表达空间;
小妖女 该用户已被删除
5#
发表于 2015-2-23 11:29:38 | 只看该作者
用户在观看广告的时候,无法通过正常点击鼠标来查看广告的尺寸、字节数、所链接的URL广告本身信息。
再见西城 该用户已被删除
6#
发表于 2015-3-7 09:21:17 | 只看该作者
用户在观看广告的时候,无法通过正常点击鼠标来查看广告的尺寸、字节数、所链接的URL广告本身信息。
7#
发表于 2015-3-15 00:02:18 | 只看该作者
原始动画为单纯的手绘,累而且费时耗资严重,随着科技的发展应运而生了很多制作动画的软件,然而flash在各个方面的应用尤为广泛,作用最为突出,具有一定的影响力。
活着的死人 该用户已被删除
8#
发表于 2015-3-21 18:25:04 | 只看该作者
缺点也必然会会有的,但是不同的产品有不同的缺点吧,比如说flash建站它的速度会比较慢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-12 02:06

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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