快速业务通道

Flash教程:AS3旋转图片实例

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-07

实例效果是图片在一个水平面上绕Y轴一圈,并用鼠标控制这些图片绕轴旋转. 图片排列状况 Flash教程:AS3旋转图片实例 具体步骤:
首先建立一个影片,然后创建一个2帧的影片剪接元件picBox,在第一帧设置stop()代码,并为该影片创建连接类名 picBox . 如下图 Flash教程:AS3旋转图片实例 Flash教程:AS3旋转图片实例 Flash教程:AS3旋转图片实例 好,完成上面后在同目录下新建一个脚本文件picBox.as
  1. package {
  2. import Flash.display.MovieClip;
  3. import flash.display.Loader;
  4. import flash.net.URLRequest;
  5. import flash.events.Event;
  6. import flash.events.MouseEvent;
  7. import flash.net.navigateToURL;
  8. //定义类picBox:这是一个画框,实现了三维坐标转化为二维坐标,还支持鼠标事件
  9. public class picBox extends MovieClip {
  10. //定义属性
  11. public var tx:Number;//三维空间之x坐标
  12. public var ty:Number;//三维空间之y坐标
  13. public var tz:Number;//三维空间之z坐标
  14. public var angle:Number;//对象在圆周上分布的弧度
  15. public var radius:uint;//圆弧的半径
  16. private var loadPic:Loader;//用于导入外部图像
  17. //构造函数:导入图像
  18. public function picBox(picURL:String) {
  19. loadPic = new Loader();
  20. var url:URLRequest = new URLRequest(picURL);
  21. loadPic.contentLoaderInfo.addEventListener(Event.COMPLETE,loaded);
  22. loadPic.load(url);
  23. }
  24. //导入图像,注册画框对象上的鼠标事件
  25. private function loaded(e:Event){
  26. //调整图像大小,稍小于画框
  27. e.target.content.width = 100;
  28. e.target.content.height = 120;
  29. //定位图像
  30. loadPic.x -= 100/2;
  31. loadPic.y -= 120/2;
  32. this.addChild(loadPic);
  33. //注册画框对象上的鼠标事件
  34. loadPic.addEventListener(MouseEvent.MOUSE_OVER,overHd);
  35. loadPic.addEventListener(MouseEvent.MOUSE_OUT,outHd);
  36. }
  37. //滑过画框,边框变色
  38. private function overHd(e:MouseEvent){
  39. this.gotoAndStop(2);
  40. }
  41. //滑出画框,边框恢复
  42. private function outHd(e:MouseEvent){
  43. this.gotoAndStop(1);
  44. }
  45. //根据变换后的角度和焦距计算二维的舞台坐标
  46. public function displayPane(spin,focalLength) { //参数:角度偏移量,焦距
  47. //计算新角度,并求新的空间坐标
  48. var currAngle:Number = angle - spin;
  49. tx = Math.cos(currAngle)*this.radius;
  50. tz = Math.sin(currAngle)*this.radius;
  51. //计算比率:画框对象离观察者由近~远-(-150,150),scaleRatio取值-[500/350,500/650]
  52. var scaleRatio:Number = focalLength/(focalLength + tz);
  53. //根据比率计算并设置平面坐标位置、大小比例
  54. this.x = tx * scaleRatio;
  55. this.y = ty * scaleRatio;
  56. this.scaleX = this.scaleY = scaleRatio;
  57. //控制画框在y=0的位

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号