FLASH 3D 旋转代码.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FLASH 3D 旋转代码

FLASH 3D 旋转代码 〖本教程是3D旋转的升级版,添加交互性。前一部分的制作请参看3D旋转教程,版本AS3.0〗 使图标具有交互性: 当鼠标单击某个图标时使之旋转,并让图标显示在屏幕的最前面。 //定义旋转的最终角度 var endAngle:Number = 90; //保存已经旋转的角度 var tempAngle:Number = 0; //保存旋转的状态 var isRotating:Boolean = true; //注册图标的单击事件 mc.addEventListener(MouseEvent.MOUSE_DOWN,startRotation); //定义侦听器函数 function startRotation(e:MouseEvent):void { //得到图标 var currentIcon::MovieClip = e.target; //得到图标的角度 enaAngle = atan2D(currentIcon.y,cosD(currentIcon.angle) * disy); //计算旋转的度数 endAngle = (endAngle -180endAngle -90) ? - 270 - endAngle:90 - endAngle; //单击后旋转,需要注册enterFrame事件侦听器 menu.addEventListener(Event.ENTER_FRAME,moveMenu); } 每次旋转前要重新初始化旋转角度 function initAngle(b:Boolean) { //如果处于旋转状态保存角度 if (isRotating) //保存图标角度 tempAngle += speed; //旋转速度重新设置为0 speed = 0; //设置旋转状态 isRotating = b; } 修改函数moveMenu(): function moveMenu(e:Event):void { var iconCount:int = menu,numChildren; var depthArrat:Array = new Array(); var angle:Number = 360 / iconCount; for (var z:int; z iconCount; z++) { var mc:MovieClip = menu.getChildAt(z); mc.gotoAndStop(z + 1); //把图标角度保存在mc的动态属性中 mc.angle = tempAngle + speed + angle * z; mc.x = cosD(mc.angle) * disy; mc.y = sinD(mc.angle) * disy; depthArray[z] = mc; setProp(mc, alpha); setProp(mc, scaleX, .2, .7); setProp(mc, scaleY, .2, .7); } arrange(depthArray); //利用缓冲公式把图标旋转到endAngle角度 speed += (endAngle - speed) * .2; if (Math.abs(speed - endAngle) 1) { //移除事件侦听器 menu.removeEventListener(Event.ENTER_FRAME,moveMenu); initAngle(false); } } 下面给出完整代码 1. include Math2.as 2. stage.frameRate = 30; 3. 4. var disx:Number = 200; 5. var disy:Number = 10; 6. var speed:Number = 0; 7. 8. var endAngle:Number = 90; 9. var tempAngle:Number = 0; 10. var isRotating:Boolean = true; 11. 12. var menu:Sprite = new Sprite(); 13. menu.x = 300; 14. menu.y = 200; 15. menu.addEventListener(Event.ENTER_FRAME,moveMenu); 16. this.addChild(menu); 17. 18. initMenu(5); 19. function initMenu(n:int) { 20. for (var

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档