[ActionScript 3.0] Away3D 非skybox的全景例子
- package
- {
- import away3d.containers.View3D;
- import away3d.controllers.HoverController;
- import away3d.entities.Mesh;
- import away3d.materials.TextureMaterial;
- import away3d.primitives.SphereGeometry;
- import away3d.utils.Cast;
- import flash.display.Sprite;
- import flash.display.StageAlign;
- import flash.display.StageScaleMode;
- import flash.events.Event;
- import flash.events.MouseEvent;
- /**
- * @author Frost.Yen
- * @E-mail 871979853@qq.com
- * @create 2015-9-23 下午3:18:40
- *
- */
- [SWF(width='800',height='600',frameRate="60", backgroundColor="0x000000")]
- public class Away3dOverall extends Sprite
- {
- [Embed(source = "assets/1.jpg")]
- private static var BallMaterial:Class;
- private var _startX:Number;
- private var _startY:Number;
- private var _mouseX:Number;
- private var _mouseY:Number;
- private var _view:View3D;
- private var _cameraHoverController:HoverController;
- private var _sphere:SphereGeometry;
- private var _sphereMaterial:TextureMaterial;
- private var _mesh:Mesh;
- public function Away3dOverall()
- {
- if (stage) {
- init();
- }else {
- this.addEventListener(Event.ADDED_TO_STAGE, init);
- }
- }
- private function init(e:Event = null):void {
- stage.scaleMode = StageScaleMode.NO_SCALE;
- stage.align = StageAlign.TOP_LEFT;
- this.removeEventListener(Event.ADDED_TO_STAGE, init);
- _view = new View3D();
- addChild(_view);
- _view.antiAlias = 6;
- //摄像机渲染范围2000
- _view.camera.lens.far = 2000;
- _cameraHoverController = new HoverController(_view.camera, null, 90, 0, 300);
- _cameraHoverController.yFactor = 1;
- _sphere = new SphereGeometry(1000, 64);
- //_sphere.yUp = false;
- _sphereMaterial = new TextureMaterial(Cast.bitmapTexture(BallMaterial));
- _sphereMaterial.bothSides = true;
- _sphereMaterial.smooth = true;
- _mesh = new Mesh(_sphere, _sphereMaterial);
- //MeshHelper.invertFaces(_mesh);
- _view.camera.position = _mesh.position;
- _view.scene.addChild(_mesh);this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
- stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownFunction);
- stage.addEventListener(MouseEvent.MOUSE_WHEEL, onWheel);
- }
- private function onWheel(e:MouseEvent):void
- {
- if (e.delta > 0) {
- if (_cameraHoverController.distance > 6) {
- _cameraHoverController.distance -= 5;
- }
- }else if (e.delta < 0) {
- if (_cameraHoverController.distance < 600) {
- _cameraHoverController.distance += 5;
- }
- }
- }
- private function mouseDownFunction(e:MouseEvent):void
- {
- _startX = _cameraHoverController.panAngle;
- _startY = _cameraHoverController.tiltAngle;
- _mouseX = mouseX;
- _mouseY = mouseY;
- stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveFunction);
- stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpFunction);
- }
- private function mouseUpFunction(e:MouseEvent):void
- {
- stage.removeEventListener(MouseEvent.MOUSE_MOVE,mouseMoveFunction);
- stage.removeEventListener(MouseEvent.MOUSE_UP,mouseUpFunction);
- //stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownFunction);
- }
- private function mouseMoveFunction(e:MouseEvent):void
- {
- _cameraHoverController.panAngle = (mouseX - _mouseX) * .3 + _startX;
- _cameraHoverController.tiltAngle = (mouseY - _mouseY) * .3 + _startY;
- }
- private function onEnterFrame(e:Event):void
- {
- _view.render();
- }
- }
- }
需要一张无缝全景图,像这样的:
[ActionScript 3.0] Away3D 非skybox的全景例子的更多相关文章
- [ActionScript 3.0] Away3D 天空盒(skybox)例子2
所谓skybox就是六个面即六张图能够无缝的拼成一个正方体的盒子. package { import away3d.cameras.Camera3D; import away3d.cameras.le ...
- [ActionScript 3.0] Away3D 天空盒(skybox)例子
/* SkyBox example in Away3d Demonstrates: How to use a CubeTexture to create a SkyBox object. How to ...
- [ActionScript 3.0] Away3D 官网实例
/* Dynamic tree generation and placement in a night-time scene Demonstrates: How to create a height ...
- [ActionScript 3.0] Away3D 灯光的使用
package { import away3d.containers.View3D; import away3d.entities.Mesh; import away3d.events.MouseEv ...
- [ActionScript 3.0] Away3D 旋转效果
package { import away3d.containers.View3D; import away3d.entities.Mesh; import away3d.events.MouseEv ...
- ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0,现把学习结果分享一下,希望对新手有帮助. 目录 ActionScript 3.0简介 Hello ...
- [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
本文转自:http://www.cnblogs.com/artwl/p/3396330.html 近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0, ...
- [ActionScript 3.0] AS3.0 动态加载显示内容
可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩 ...
- ActionScript 3.0 API 中的 Video 类
注:这个类在Flash流媒体开发中使用的很频繁,在此记录一下它的使用方法. 包 flash.media 类 public class Video 继承 Video DisplayObject Ev ...
随机推荐
- javascript保留两位小数
原文地址http://blog.csdn.net/he20101020/article/details/8503308 <script type="text/javascrip ...
- Quarzt.NET 任务调度框架
Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性 ...
- Html下拉框的定义以及JS、Jquary取值、添加和移除
现在有一id=test的下拉框,怎么拿到选中的那个值呢? 分别使用javascript原生的方法和jquery方法 <select id="test" name=" ...
- SqlDataAdapter怎么处理事务呢
SqlDataAdapter怎么处理事务呢,没找到相关代码,哪位朋友能提供下 解决方案 » this._DBAdpt-------------SqlDataAdapterthis._DBConn- ...
- Neutron LBaaS Service(2)—— Neutron Services Insertion Model
Service Insertion Service Insertion是Neutron中实现L4/L7层服务的框架.Neutron以前只有一级插件结构用于实现各种L2层技术(如LinuxBridge, ...
- (转)mongodb分片
本文转载自:http://www.cnblogs.com/huangxincheng/archive/2012/03/07/2383284.html 在mongodb里面存在另一种集群,就是分片技术, ...
- (微信API接口开发) 使用HttpWebRequest进行请求时发生错误:基础连接已关闭,发送时发生错误处理
最近调试原来的微信模拟登陆时发生了“基础连接已关闭,发送时发生错误”的错误提示,原来都是好好的,只是很久没用了. 出错代码如下: HttpWebRequest req = (HttpWebReques ...
- (WF)
Caught: System.InvalidOperationException: The argument of type 'XXX' cannot be used. Make sure that ...
- C# 通过线程来控制进度条(转)--讲解多线程对界面的操作
// 通过创建委托解决传递参数问题 private void _btnRun_Click( object sender, System.EventArgs e ) { RunTaskDelegate ...
- JDK1.7新特性
jdk1.7新特性 1 对集合类的语言支持: 2 自动资源管理: 3 改进的通用实例创建类型推断: 4 数字字面量下划线支持: 5 switch中使用string: 6 二进制字面量: 7 简化可变参 ...