快速导航:   教程资源  | 经典范例  | 友情链接  | 联系我们  | 官方微博
登陆 | 注册

 flash 3d 研究所
flash3d 研究所 pv3d 教程 研究所小贴士: 完美的旋转要用到痛苦的四元数










最近更新:
● wan925446570阁下在讨论区里 回复“怎么配置away3d 4.0运行环境啊?...”(15:12:45)
● wan925446570阁下在讨论区里 回复“怎么配置away3d 4.0运行环境啊?...”(10:01:38)
● DDM君阁下在讨论区里 回复“怎么配置away3d 4.0运行环境啊?...”(19:07:43)
浏览主题:怎样将flex的代码应用到flash

怎样将flex的代码应用到flash
(2009-10-17 21:45:05)

有人说去掉: “[SWF ( backgr....” ;并且把QJPV.as设置为doc class
把QJPV.as设置为doc class这一部怎么做?看不懂

代码如下:

package {
import flash.display.Sprite;
import flash.events.Event;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.Plane;
import org.papervision3d.materials.BitmapFileMaterial;
import flash.display.*;
import flash.ui.Keyboard;

import flash.media.Camera;
import org.papervision3d.cameras.Camera3D;
import flash.events.MouseEvent;

[SWF ( backgroundColor = '0', width = '800', height = '600')]
public class QJPV extends Sprite
{
  //_____________________________________
 
 
  private var camera   :Camera3D;
  private var container :Sprite;
  private var sence   :Scene3D;
  private var rootNode :DisplayObject3D;
 
  private var du   :Number = 1;
  private var space   :DisplayObject3D;
 
  // 构造函数
  public function QJPV()
  {
  stage.scaleMode = "noScale";
  stage.align = StageAlign.TOP_LEFT;
  stage.frameRate = 30;
 
  init3D();
  stage.addEventListener(Event.ENTER_FRAME,onEnterFrame);
 
  stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown); //鼠标 down
  stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUp); //鼠标up
 
  }
 
 
  /**
  * 初始化3d
  */
  private function init3D():void{
  container = new Sprite;
  container.x = stage.stageWidth/2;
  container.y = stage.stageHeight/2;
  this.addChild(container);
 
  sence = new Scene3D(container);
  rootNode = sence.addChild(new DisplayObject3D);
 
  camera = new Camera3D();
 
  camera.focus = 150;
  camera.zoom = 10;
 
  //_______________________ add object
 
  // space 代表一个空间,这个空间里,我们把正方体的六面加上
  space = rootNode.addChild(new DisplayObject3D());
 
 
  // 设置每个面的位置,以组成一个box,摄像机在 box里面
  var pb:Plane = Plane(space.addChild(new Plane(new BitmapFileMaterial("sea\sea_b.jpg"),1000,1000,10,10)));
  pb.z = -500;
  pb.rotationY = 180;
  var pf:Plane = Plane(space.addChild(new Plane(new BitmapFileMaterial("sea\sea_f.jpg"),1000,1000,10,10)));
  pf.z = 500;
  var pl:Plane = Plane(space.addChild(new Plane(new BitmapFileMaterial("sea\sea_l.jpg"),1000,1000,10,10)));
  pl.x = -500;
  pl.rotationY = -90;
  var pr:Plane = Plane(space.addChild(new Plane(new BitmapFileMaterial("sea\sea_r.jpg"),1000,1000,10,10)));
  pr.x = 500;
  pr.rotationY = 90;
  var pu:Plane = Plane(space.addChild(new Plane(new BitmapFileMaterial("sea\sea_u.jpg"),1000,1000,10,10)));
  pu.y= 500;
  pu.rotationX = 90;
  var pd:Plane = Plane(space.addChild(new Plane(new BitmapFileMaterial("sea\sea_d.jpg"),1000,1000,10,10)));
  pd.y= -500;
  pd.rotationX = -90;
 
  }
 
  private function onEnterFrame(e:Event):void{
 
  container.x = stage.stageWidth/2;
  container.y = stage.stageHeight/2;
 
  // 设置水平方向与鼠标的关系
  space.rotationY = (1-stage.mouseX/stage.stageWidth)*500;
  // 设置上下方向
  camera.target.y = (0.5-stage.mouseY/stage.stageHeight)*1000;
  sence.renderCamera(camera);
 
  }
 
 
 
  /**
  * 设置线框
  */
  private function setLine(a:int):void{
  for each(var child:DisplayObject3D in space.children){
    child.material.lineAlpha = a;
  }
  }
  private function onMouseDown(e:Event):void{
  setLine(1);
  }
  private function onMouseUp(e:Event):void{
  setLine(0);
  }
 
 
}
}





flash 3d 研究所
(2009-10-17 22:41:27)
直接用FLASH CS4编译试试看。


评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了