这篇文章已经过期,请使用最新版的Away3d并查看相关资料

使用现有的flash player API能够实现三维旋转的地球,但是比较麻烦,主要使用的是flash player10新增加的绘图API drawTriangles,这里我使用Away3d来实现旋转的地球。

Away3d能使用多种材质,都在Away3d.materials.*包里面,这个包里面有不下20种材质,它能够使用位图、视频、外部swf文件以及线框等等来作为材质。而且在使用swf作为材质时,还能够保有其交互性,可以说是只有你想不到,没有你做不到。但是不同的材质对系统需求不同,毫无疑问,视频文件以及swf文件作为材质消耗系统资源要比位图、线框材质多一些,废话少说下面看代码(地球的贴图文件我会传上来,大家可以试试):

package
{import away3d.cameras.HoverCamera3D;import away3d.containers.View3D;import away3d.core.utils.Cast;import away3d.materials.BitmapMaterial;import away3d.primitives.Sphere;import flash.display.Sprite;import flash.events.Event;/*** ...* @author aisajiajiao* 旋转的地球*/public class MaterialDemo extends Sprite{//这是我机器上的文件路径,在自己实验的时候一定要确保路径正确[Embed(source="../assets/map.jpg")]private var Earth:Class;private var _view:View3D;private var _camera:HoverCamera3D;private var _sphere:Sphere;private var _material:BitmapMaterial;public function MaterialDemo() {//配置摄像机_camera = new HoverCamera3D();//Camera的仰角,单位度而非弧度,默认为0_camera.tiltAngle = 10;//Camera在y轴上的旋转角度,默认为0单位也是度_camera.panAngle = 180;//摄像头与指定目标之间的距离,默认是800_camera.distance = 1000;_view = new View3D();_view.x = stage.stageWidth / 2;_view.y = stage.stageHeight / 2;_view.camera = _camera;addChild(_view);//使用Cast类将位图数据转化为BitmapData数据,Cast类是工具类,使用很方便实现各种数据之间的转化//当然你可以使用原生的Bitmap类来获得BitmapData数据._material = new BitmapMaterial(Cast.bitmap(Earth));_sphere = new Sphere();_sphere.radius = 200;//设置分段数_sphere.segmentsH = 20;_sphere.segmentsW = 20;//设置材质,将地球贴图复制给球体_sphere.material = _material;//添加至舞台_view.scene.addChild(_sphere);addEventListener(Event.ENTER_FRAME, onEnterFrame);}private function onEnterFrame(e:Event):void{//下面一句被注释掉了,它确保的是地球自身在旋转(自西向东转)//_sphere.rotationY--;//hover()函数在每一帧上刷新显示,使之产生动画,如果将其注释,则不会产生动画,大家可以试试_camera.hover();//根据鼠标的位置旋转地球_camera.panAngle += (stage.mouseX - stage.stageWidth / 2)/60;_view.render();}}}

效果截图:

贴图文件:

Away3d坐标系解析(与Flash二维坐标系不同):

Away3d材质实战——旋转的地球相关推荐

  1. Threejs入门之十一:创建旋转的地球

    经过前面几个章节的介绍,我们对Threejs已经有了一个相对深入的了解,下面我们通过Threejs来做一个旋转的地球效果. 1.首先在电脑上创建一个earth文件夹,在earth文件夹中创建image ...

  2. OpenGL ES for Android 绘制旋转的地球

    No 图 No Code,我们先来欣赏下旋转的地球: 是不是很酷炫,要想绘制出上面酷炫的效果需要3个步骤: 计算球体顶点数据 地球纹理贴图 通过MVP矩阵旋转地球 计算球体顶点数据 我们知道OpenG ...

  3. mapboxGL实现旋转的地球

    概述 许久未更新,这一篇是凑数的,用最新的mapboxGL2.10的版本实现一个旋转的地球的效果. 实现效果 实现 为效果好一点,添加了一个canvas的星空动画,实现代码如下: class Star ...

  4. css3旋转的地球,旋转的地球css3

    css3果然博大精深: 1.代码里面还有用box-shadow制作椭圆形阴影的效果,厉害了!之前找了好久都没找到,今天给找到了 html: css: .ball .shadow { position: ...

  5. python代码 旋转的地球

    python代码 旋转的地球 所需模块 效果 代码 所需模块 numpy pylab matplotlib mpl_toolkits 效果 代码 # -*- coding: utf-8 -*- &qu ...

  6. SceneKit做一个旋转的地球效果

    SceneKit可以用寥寥几行帮你完成很多OpenGL复杂的3D设置代码,下面本猫就带大家完成一个旋转的3D地球的场景. 首先需要地球表面图片,将其导入到Xcode中: 我们用SceneKit内置的几 ...

  7. Java利用多线程编程实现一个正在旋转的地球

    代码有冗余,但是实现了旋转地球的多线程打印 import java.applet.*; import java.awt.*; import java.util.*;public class Eeart ...

  8. MG动画实例——旋转的地球

    这其实是刚刚从新浪搬回来后,更的第一篇,使用素材如下: 是一张平淡无奇的黑白图,我们将用AE,完成它变成真正地球的"壮举". 1.打开AE,新建合成,在合成中新建纯色层作背景,习惯 ...

  9. 虚幻UE4/5中如何使用材质节点旋转贴图

    在贴图后面连接(CustomRotator)节点即可,完整连发见下图                                                         完成保存后效果见下 ...

最新文章

  1. python 异常分类_python的异常处理
  2. nginx反向代理监听非80端口造成的端口丢失解决方案
  3. Leetcode 剑指 Offer 53 - I. 在排序数组中查找数字 I (每日一题 20210928)
  4. java javap_javap的用途不断发展:您的Java类文件中隐藏了什么?
  5. es6 作为对象属性的Generator函数
  6. HIT Software Construction Review Notes(0-1 Introduction to the Course)
  7. 公众号抢号_公众号调性是什么意思?公众号排版可以塑造公众号调性吗?
  8. 1,3+–二苯基胍行业调研报告 - 市场现状分析与发展前景预测
  9. Java接口中的成员变量为什么必须声明为public static final?
  10. 佳博GP1124T的安装向导
  11. 基于Wemos的wifi避障小车部分代码
  12. CCPROXY漏洞利用
  13. 机器学习实战(Machine Learning in Action)学习笔记————07.使用Apriori算法进行关联分析...
  14. Contradiction Detection with Contradiction-Specific Word Embedding
  15. VIPKID数千万战略投资新学说,深度参与国际教育行业
  16. telnet控制路由器交换机与微信公众平台
  17. 计算机卡怎么解决,电脑卡怎么办,详细教您电脑卡怎么解决
  18. Ubuntu20.04 锁屏快捷键无反应的解决方法
  19. Excel表中查找、去除重复项方法合集
  20. 基于Adams联合MATLAB的联合仿真设置

热门文章

  1. vbox的虚拟机Ubuntu的共享文件夹无法创建软链的问题解决
  2. 华为机试练习(七)书籍叠放问题
  3. KERNEL_DATA_INPAGE_ERROR 蓝屏开机卡顿修复
  4. android 原子文件,Android原子操作
  5. js 复制微信号码 并唤醒微信
  6. oracle中spool命令的使用,Oracle中Spool命令的使用方法实例
  7. Windows下使用taskkill 命令结束进程
  8. FastDFS文件同步机制分析
  9. springcloud:访问/bus/refresh地址后出现错误,,client端出现以下错误
  10. 《凸优化》7 学习笔记