1代码展示

package
{
import away3d.containers.View3D;
import away3d.controllers.HoverController;
import away3d.entities.Mesh;
import away3d.materials.TextureMaterial;
import away3d.primitives.SphereGeometry;
import away3d.textures.BitmapTexture; import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent; [SWF(width='1024',height='512',frameRate='60')]
public class Study05 extends Sprite
{
[Embed(source='/../embeds/pano_sphere.jpg')]
private var _pano:Class; private var _startX:Number;
private var _startY:Number;
private var _mouseX:Number;
private var _mouseY:Number;
private var _view:View3D;
private var _hover:HoverController;
private var _mesh:Mesh;
private var _sphere:SphereGeometry;
private var _material:TextureMaterial;
private var _bitmap:BitmapTexture;
private var _delta:int; public function Study05()
{
_view = new View3D();
addChild(_view);
_view.camera.lens.far = 2000; // 设置照相机的渲染上限(不能低于球半径)
_bitmap = new BitmapTexture(new _pano().bitmapData);
_sphere = new SphereGeometry(1000,32,32);
_material = new TextureMaterial(_bitmap);
_material.bothSides = true;
_mesh = new Mesh(_sphere,_material);
_hover = new HoverController(_view.camera,null,90,0,300);
_view.scene.addChild(_mesh);
stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownFunction);
stage.addEventListener(MouseEvent.MOUSE_UP,onUpHandler);
stage.addEventListener(MouseEvent.MOUSE_WHEEL,onWheelHandler);
addEventListener(Event.ENTER_FRAME,onLoopHandler);
} protected function onWheelHandler(event:MouseEvent):void
{
_delta+=event.delta;
_hover.distance=_delta;
//trace(del);
} protected function onUpHandler(event:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE,mouseMoveFunction);
} private function mouseDownFunction(event:MouseEvent):void
{ _startX = _hover.panAngle;
_startY = _hover.tiltAngle;
_mouseX = mouseX;
_mouseY = mouseY;
stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveFunction);
//stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpFunction);
} private function mouseMoveFunction(event:MouseEvent):void
{
_view.camera.x=_delta;
_hover.panAngle = (mouseX - _mouseX) * .3 + _startX;
_hover.tiltAngle = (mouseY - _mouseY) * .3 + _startY;
} protected function onLoopHandler(event:Event):void
{
_view.render();
}
}
}

2效果预览

Away3D带你360°漫游全景影像的更多相关文章

  1. jQuery Panorama Viewer – 360度全景展示插件

    jQuery Panorama Viewer 这款插件可以帮助你在网站中嵌入全景图片.要做到这一点,首先只需要在页面中引入最新的 jQuery 库,以及 jquery.panorama_viewer. ...

  2. 【Android开发VR实战】二.播放360°全景视频

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53924006 本文出自[DylanAndroid的博客] [Android开发 ...

  3. 基于Three.js的360度全景--photo-sphere-viewer--简介

    这个是基于three.js的全景插件  photo-sphere-viewer.js  ---------------------------------------- 1.能添加热点: 2.能调用陀 ...

  4. [置顶] 实现360度全景图像的利器--PanoramaGL

    传送门 ☞轮子的专栏 ☞转载请注明 ☞ http://blog.csdn.net/leverage_1229 介绍 本指南将介绍一个PanoramaGL 0.1类库的简单用法,更多的细节请签出 Hel ...

  5. 全景VR视频外包公司:长年承接VR全景视频外包(技术分享YouTube的360全景视频)

    虽然比预期来得晚了些,但YouTube终于支持360度全景视频了,这应该会吸引不少VR(虚拟现实)爱好者.今年1月,Google就表示这一功能将在“接下来”的几周出现.现在YouTube上已经有了一些 ...

  6. 一张图看懂360°全景和VR的区别

    2016年开始,Facebook.谷歌.腾讯.阿里等互联网巨头都已开始抢食VR(虚拟现实)这块的大蛋糕,虚拟现实发展速度惊人.在这样强势发展的背景下,一些产品也开始打着VR的幌子,挂着VR的噱头卖起来 ...

  7. <Three.js>(第三节)全景漫游

    一.实验内容 通过上次实验,了解了Three.js创建场景的基本步骤.这一节,我们将通过Three.js实现全景漫游功能.如下图: 全景图是获取一个3D场景中的不同角度的图片,然后通过拼接.融合实现3 ...

  8. VR全景智慧城市:360全景市场需要背景及其优势~

    VR元年已过,VR项目.VR创业潮转为理性,VR行业分为两个方向:硬件和内容. VR全景,又被称为3D实景,是一种新兴的富媒体技术,其与视频,声音,图片等传统的流媒体大的区别是"可操作,可交 ...

  9. 《图说VR入门》——360全景视频

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/53674647 作者:car ...

随机推荐

  1. DevExpress ASP.NET 使用经验谈(3)-XPO对象的使用(使用指定数据连接)

    首先,我们贴出上一节Users类XPO对象的保存代码,直接建立的XPO Session会话,因为没有与我们所期望的数据层建立绑定, 所以程序自动创建了一个Access数据库,作为默认数据库操作对象来使 ...

  2. 使用VS创建WebPart部件,并部署到SP(待修改)

    http://www.cnblogs.com/mingmingruyuedlut/archive/2012/12/02/2789488.html

  3. [译]SSRS 编写带参数的MDX报表

    编写MDX报表长久以来对于报表人员来说都比较痛苦. 当然如果你用查询设计器(Query Designer) 直接拖拉数据集那就很方便,但是你们有没有想过查询设计器是怎么创建MDX的.或者创建的参数是如 ...

  4. iOS开发之第三方登录微信-- 史上最全最新第三方登录微信方式实现

    项目地址 :    https://github.com/zhonggaorong/weixinLoginDemo 最新版本的微信登录实现步骤实现: 1.在进行微信OAuth2.0授权登录接入之前,在 ...

  5. 【Linux命令】Ubuntu14.04+QT5.2配置mysql

    安装qt: 官网下载qt5.2.1:qt-opensource-linux-x64-5.2.1.run 直接命令行运行:./qt-opensource-linux-x64-5.2.1.run 选择安装 ...

  6. JS 获取星期几的四种写法

    今天是星期几的4种JS代码写法,有需要的朋友可以参考一下 第一种写法 复制代码代码如下: var str = "";  var week = new Date().getDay() ...

  7. jQuery(二)

    table 全选.反选.清除 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  8. 高级UNIX环境编程10 信号

    信号是软件中断,提供一种处理异步事件的方法 <signal.h> sigaction()

  9. (C)单链表

    老师版 #include <stdio.h> #include <stdlib.h> // 定于Node数据类型 struct Node { int data; // 数据域 ...

  10. php 用户访问菜单页面,必须登录,判断用户是否登录

    <pre name="code" class="python"># 本节课大纲: 一.空模块和空操作 1.空操作 function _empty($ ...