Flash教程:AS3旋转图片实例
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-07
|
置翻转
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事件,随时改变角度从而发生旋转
- pics.addEventListener(Event.ENTER_FRAME,panCamera);
- }
- //ENTER_FRAME事件处理函数,调用画框对象的displayPane方法,改变自身位置
- private function panCamera(e:Event) {
- //根据鼠标位置调节角度偏移量
- spin+= (mouseX - stage.stageWidth/2) / 2000;
- //改变画框对象的坐标
- for (var i:uint; i < picBoxArr.length; i++) {
- picBoxArr[i].displayPane(spin,focalLength);
- }
- //重新排列对象的位置索引
- replace();
- }
- //重新排列对象的位置索引
- private function replace() {
- //暂存各对象引用及z轴位置信息
- for (var i:uint; i < picBoxArr.length; i++) {
- zArr[i]={p:picBoxArr[i],pz:picBoxArr[i].tz};
- }
-
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn
为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
|