带来一篇Flash AS3教程:制造鼠标感到图片动弹-Flash实例教程
若你要观看网页上的多媒体内容,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取值-
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);
}
}
}
}
最后的效果:
AdobeFlashProfessionalCS5.5软件可以提供行业领先、用于制作具有表现力的交互式内容的授权环境。 flash的优缺点可以如何运用呢? 祯率越高,动画中可包容的信息越多,动画看起来越光滑和流畅。当然,当祯率增加时,计算机的CPU的重绘工作越多,运行得就越慢。 还有,艺术上的优势——各异的风格;创作手法独特;独立性和原创性;拓展出新的表达空间; 用户在观看广告的时候,无法通过正常点击鼠标来查看广告的尺寸、字节数、所链接的URL广告本身信息。 用户在观看广告的时候,无法通过正常点击鼠标来查看广告的尺寸、字节数、所链接的URL广告本身信息。 原始动画为单纯的手绘,累而且费时耗资严重,随着科技的发展应运而生了很多制作动画的软件,然而flash在各个方面的应用尤为广泛,作用最为突出,具有一定的影响力。 缺点也必然会会有的,但是不同的产品有不同的缺点吧,比如说flash建站它的速度会比较慢。
页:
[1]