Flash AS3教程:制作鼠标感应图片转动
tx = Math.cos(currAngle)*this.radius; tz = Math.sin(currAngle)*this.radius; //计算比率:画框对象离观察者由近~远-(-150,150),scaleRatio取值-[500/350,500/650] var scaleRatio: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 { import flash.display.Sprite; import flash.events.Event; //定义文档类:创建画框对象,均匀分布在虚拟的y=100平面上并根据鼠标位置发生旋转 public class main extends Sprite { //定义属性 private var picnum:uint=8 //画框数量 private var pics:Sprite=new Sprite(); //容纳画框,在其中虚拟的y=100平面上分布 private var picBoxArr:Array=new Array(); //画框的引用数组 private var spin:Number=0; //角度偏移量 private var focalLength:uint=500; //焦距 private var angleStep:Number=2 * Math.PI / picnum; //画框分布时,间距角度 private var zArr:Array = new Array(); //暂存画框对象及tz值,用于重新调整位置索引 //构造函数:在大容器pics内创建画框,并分配初始值 public function main() { //定位大容器到舞台 pics.x=270; pics.y=80; addChild(pics); //创建画框对象并添加到大容器内 for (var i:uint; i < picnum; i++) { //画框上待显示的图像路径 var pic:String="pic\\image" + i + ".jpg"; //创建画框对象 var newBox:picBox=new picBox(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 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |