1. package
  2. {
  3. import away3d.containers.View3D;
  4. import away3d.controllers.HoverController;
  5. import away3d.entities.Mesh;
  6. import away3d.materials.TextureMaterial;
  7. import away3d.primitives.SphereGeometry;
  8. import away3d.utils.Cast;
  9.  
  10. import flash.display.Sprite;
  11. import flash.display.StageAlign;
  12. import flash.display.StageScaleMode;
  13. import flash.events.Event;
  14. import flash.events.MouseEvent;
  15.  
  16. /**
  17. * @author Frost.Yen
  18. * @E-mail 871979853@qq.com
  19. * @create 2015-9-23 下午3:18:40
  20. *
  21. */
  22. [SWF(width='800',height='600',frameRate="60", backgroundColor="0x000000")]
  23.  
  24. public class Away3dOverall extends Sprite
  25. {
  26. [Embed(source = "assets/1.jpg")]
  27. private static var BallMaterial:Class;
  28. private var _startX:Number;
  29. private var _startY:Number;
  30. private var _mouseX:Number;
  31. private var _mouseY:Number;
  32. private var _view:View3D;
  33. private var _cameraHoverController:HoverController;
  34. private var _sphere:SphereGeometry;
  35. private var _sphereMaterial:TextureMaterial;
  36. private var _mesh:Mesh;
  37. public function Away3dOverall()
  38. {
  39. if (stage) {
  40. init();
  41. }else {
  42. this.addEventListener(Event.ADDED_TO_STAGE, init);
  43. }
  44.  
  45. }
  46. private function init(e:Event = null):void {
  47. stage.scaleMode = StageScaleMode.NO_SCALE;
  48. stage.align = StageAlign.TOP_LEFT;
  49. this.removeEventListener(Event.ADDED_TO_STAGE, init);
  50.  
  51. _view = new View3D();
  52. addChild(_view);
  53. _view.antiAlias = 6;
  54. //摄像机渲染范围2000
  55. _view.camera.lens.far = 2000;
  56.  
  57. _cameraHoverController = new HoverController(_view.camera, null, 90, 0, 300);
  58. _cameraHoverController.yFactor = 1;
  59. _sphere = new SphereGeometry(1000, 64);
  60. //_sphere.yUp = false;
  61. _sphereMaterial = new TextureMaterial(Cast.bitmapTexture(BallMaterial));
  62. _sphereMaterial.bothSides = true;
  63. _sphereMaterial.smooth = true;
  64. _mesh = new Mesh(_sphere, _sphereMaterial);
  65. //MeshHelper.invertFaces(_mesh);
  66.  
  67. _view.camera.position = _mesh.position;
  68.  
  69. _view.scene.addChild(_mesh);this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
  70. stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownFunction);
  71. stage.addEventListener(MouseEvent.MOUSE_WHEEL, onWheel);
  72. }
  73. private function onWheel(e:MouseEvent):void
  74. {
  75. if (e.delta > 0) {
  76. if (_cameraHoverController.distance > 6) {
  77. _cameraHoverController.distance -= 5;
  78. }
  79. }else if (e.delta < 0) {
  80. if (_cameraHoverController.distance < 600) {
  81. _cameraHoverController.distance += 5;
  82. }
  83. }
  84. }
  85.  
  86. private function mouseDownFunction(e:MouseEvent):void
  87. {
  88. _startX = _cameraHoverController.panAngle;
  89. _startY = _cameraHoverController.tiltAngle;
  90. _mouseX = mouseX;
  91. _mouseY = mouseY;
  92. stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveFunction);
  93. stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpFunction);
  94. }
  95.  
  96. private function mouseUpFunction(e:MouseEvent):void
  97. {
  98. stage.removeEventListener(MouseEvent.MOUSE_MOVE,mouseMoveFunction);
  99. stage.removeEventListener(MouseEvent.MOUSE_UP,mouseUpFunction);
  100. //stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownFunction);
  101. }
  102.  
  103. private function mouseMoveFunction(e:MouseEvent):void
  104. {
  105. _cameraHoverController.panAngle = (mouseX - _mouseX) * .3 + _startX;
  106. _cameraHoverController.tiltAngle = (mouseY - _mouseY) * .3 + _startY;
  107. }
  108.  
  109. private function onEnterFrame(e:Event):void
  110. {
  111. _view.render();
  112. }
  113.  
  114. }
  115. }

需要一张无缝全景图,像这样的:

[ActionScript 3.0] Away3D 非skybox的全景例子的更多相关文章

  1. [ActionScript 3.0] Away3D 天空盒(skybox)例子2

    所谓skybox就是六个面即六张图能够无缝的拼成一个正方体的盒子. package { import away3d.cameras.Camera3D; import away3d.cameras.le ...

  2. [ActionScript 3.0] Away3D 天空盒(skybox)例子

    /* SkyBox example in Away3d Demonstrates: How to use a CubeTexture to create a SkyBox object. How to ...

  3. [ActionScript 3.0] Away3D 官网实例

    /* Dynamic tree generation and placement in a night-time scene Demonstrates: How to create a height ...

  4. [ActionScript 3.0] Away3D 灯光的使用

    package { import away3d.containers.View3D; import away3d.entities.Mesh; import away3d.events.MouseEv ...

  5. [ActionScript 3.0] Away3D 旋转效果

    package { import away3d.containers.View3D; import away3d.entities.Mesh; import away3d.events.MouseEv ...

  6. ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

    近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0,现把学习结果分享一下,希望对新手有帮助. 目录 ActionScript 3.0简介 Hello ...

  7. [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

    本文转自:http://www.cnblogs.com/artwl/p/3396330.html 近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0, ...

  8. [ActionScript 3.0] AS3.0 动态加载显示内容

    可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩 ...

  9. ActionScript 3.0 API 中的 Video 类

    注:这个类在Flash流媒体开发中使用的很频繁,在此记录一下它的使用方法. 包 flash.media 类 public class Video 继承 Video  DisplayObject  Ev ...

随机推荐

  1. javascript保留两位小数

      原文地址http://blog.csdn.net/he20101020/article/details/8503308   <script type="text/javascrip ...

  2. Quarzt.NET 任务调度框架

      Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性 ...

  3. Html下拉框的定义以及JS、Jquary取值、添加和移除

    现在有一id=test的下拉框,怎么拿到选中的那个值呢? 分别使用javascript原生的方法和jquery方法 <select id="test"  name=" ...

  4. SqlDataAdapter怎么处理事务呢

    SqlDataAdapter怎么处理事务呢,没找到相关代码,哪位朋友能提供下   解决方案 » this._DBAdpt-------------SqlDataAdapterthis._DBConn- ...

  5. Neutron LBaaS Service(2)—— Neutron Services Insertion Model

    Service Insertion Service Insertion是Neutron中实现L4/L7层服务的框架.Neutron以前只有一级插件结构用于实现各种L2层技术(如LinuxBridge, ...

  6. (转)mongodb分片

    本文转载自:http://www.cnblogs.com/huangxincheng/archive/2012/03/07/2383284.html 在mongodb里面存在另一种集群,就是分片技术, ...

  7. (微信API接口开发) 使用HttpWebRequest进行请求时发生错误:基础连接已关闭,发送时发生错误处理

    最近调试原来的微信模拟登陆时发生了“基础连接已关闭,发送时发生错误”的错误提示,原来都是好好的,只是很久没用了. 出错代码如下: HttpWebRequest req = (HttpWebReques ...

  8. (WF)

    Caught: System.InvalidOperationException: The argument of type 'XXX' cannot be used. Make sure that ...

  9. C# 通过线程来控制进度条(转)--讲解多线程对界面的操作

    // 通过创建委托解决传递参数问题 private void _btnRun_Click( object sender, System.EventArgs e ) { RunTaskDelegate ...

  10. JDK1.7新特性

    jdk1.7新特性 1 对集合类的语言支持: 2 自动资源管理: 3 改进的通用实例创建类型推断: 4 数字字面量下划线支持: 5 switch中使用string: 6 二进制字面量: 7 简化可变参 ...