Away3D-0 网页中的全屏
1 package 2 { 3 import away3d.entities.*; 4 import away3d.materials.*; 5 import away3d.primitives.*; 6 import away3d.utils.*; 7 import flash.display.*; 8 import flash.events.*; 9 import away3d.containers.*; 10 import flash.ui.ContextMenu; 11 import flash.ui.ContextMenuItem; 12 /** 13 * ... 14 * @author HonmaMeiko 15 */ 16 [SWF(width="600",height="400",backgroundColor="#FFFFFF", frameRate="60", quality="LOW")] 17 public class Main extends Sprite 18 { 19 [Embed(source = "earth2.jpg")] 20 private var earth:Class;//图片资源 21 private var view:View3D;//Away3D的3D视图 22 private var sphere:Mesh;//网格 23 public function Main():void //构造函数 24 { 25 //创建3D视图 26 view = new View3D(); 27 //加载球形几何图形数据 28 var geo:SphereGeometry = new SphereGeometry(200); 29 //加载纹理 30 var texture:TextureMaterial = new TextureMaterial(Cast.bitmapTexture(earth)); 31 //合成Mesh 32 sphere = new Mesh(geo, texture); 33 //添加到3D视图中 34 view.scene.addChild(sphere); 35 //构造新的右键菜单,覆盖掉Away3D原有的右键菜单 36 var menu:ContextMenu = new ContextMenu; 37 menu.customItems.push(new ContextMenuItem("Test")); 38 menu.hideBuiltInItems(); 39 view.contextMenu = menu; 40 41 //设置stage属性 42 stage.align = StageAlign.TOP_LEFT;//让子节点停靠在左上角 43 stage.scaleMode = StageScaleMode.NO_SCALE;//不拉伸模式 44 stage.addChild(view);//添加3D视图到stage中 45 //监听事件 46 stage.addEventListener(Event.ENTER_FRAME, OnEnterFrame); 47 stage.addEventListener(MouseEvent.CLICK, onMouseClick); 48 stage.addEventListener(Event.RESIZE, OnResize); 49 OnResize(); 50 51 } 52 private function OnEnterFrame(e:Event):void 53 { 54 55 //sphere.pitch(1); //绕X轴旋转,沿着向量(-1,0,0)指向的方向看,正数顺时针,负数逆时针 56 //sphere.roll(1); //绕Z轴旋转,向量(0,0,-1) 57 sphere.yaw(1); //绕Y轴旋转,向量(0,-1,0) 58 view.render(); //渲染 59 } 60 private function onMouseClick(event:Event = null):void 61 { 62 //判断当前是否是全屏状态 63 if (stage.displayState != "fullScreen") { 64 //不是则切换到全屏状态 65 stage.displayState = StageDisplayState.FULL_SCREEN; 66 } 67 else { 68 //是则切换到窗口状态 69 stage.displayState = StageDisplayState.NORMAL; 70 } 71 //在IE 9.0.8112.16421下,flash版本11.6.602.180下正常运行,能进行切换且切换后内容显示正常 72 //在chrome 26.0.1410.64 m下,flash版本11.7.700.179下窗口模式下能显示,切换到全屏后不显示任何内容,再切换回窗口模式也不显示内容 73 } 74 private function OnResize(event:Event = null):void 75 { 76 //窗口大小改变后设置view的宽度和高度 77 view.x = 0; 78 view.y = 0; 79 if (stage.displayState == "fullScreen") 80 { 81 view.width = stage.fullScreenWidth; 82 view.height = stage.fullScreenHeight; 83 } 84 else { 85 view.width = stage.stageWidth; 86 view.height = stage.stageHeight; 87 } 88 } 89 } 90 91 }
测试图一张(来自away3d的example):
测试图512*256
图像的宽和高必须是2的倍数,否则纹理加载会失败.