2009年6月8日 星期一

Tutorial 01: 建立簡單立方體

重點API:
sandy.core.Scene3D
sandy.core.scenegraph.Camera3D
sandy.core.scenegraph.Group
sandy.primitive.Box


  1. package
  2. {
  3. import flash.display.Sprite;
  4. import flash.events.Event;
  5. import sandy.core.Scene3D;
  6. import sandy.core.scenegraph.Camera3D;
  7. import sandy.core.scenegraph.Group;
  8. import sandy.primitive.Box;
  9. public class Example001 extends Sprite
  10. {
  11. // 宣告3D場景及攝影機
  12. private var scene:Scene3D;
  13. private var camera:Camera3D;
  14. public function Example001()
  15. {
  16. // camera 是 使用者觀看3D場景的鏡頭
  17. // 攝影鏡頭也可以設在3D場景之內
  18. // 在此,我們將它設定與舞台大小相同
  19. camera = new Camera3D(300, 300);

  20. // 設定camera 的 z 座標
  21. camera.z = -400;
  22. // 為場景內的所有物件產生一根群組
  23. var root:Group = createScene();
  24. // 產生3D場景,並設定此場景的Unique名稱、
  25. // 要在哪一個Container中被繪出、
  26. // 並將場景的攝影機,及所有要置放於此場景的
  27. // 群組放到場景內
  28. scene = new Scene3D("scene", this, camera, root);
  29. // 設置一事件監聽器,當此場景一進入舞台
  30. // 便開始繪製
  31. addEventListener(Event.ENTER_FRAME, enterFrameHandler);
  32. }
  33. private function createScene():Group
  34. {
  35. // 宣告一Group物件,此Group將放罝所有
  36. // 我們要放置在場景內的物件
  37. // 並當 function call的回傳值
  38. var g:Group = new Group();
  39. // 產生一3D立方體, 並設定其Unique名稱
  40. // 及長、寬、高
  41. var box:Box = new Box("box", 100, 100, 100);
  42. // 將此立方體隨X、Y軸,旋轉30度
  43. box.rotateX = 30;
  44. box.rotateY = 30;
  45. // 將立方體加入舞台顯示群組中
  46. g.addChild(box);
  47. return g;
  48. }
  49. private function enterFrameHandler(evt:Event):void
  50. {
  51. scene.render();
  52. }
  53. }
  54. }


產出:



程式碼出處:http://www.flashsandy.org/tutorials/3.0/sandy_cs3_tut01

沒有留言:

張貼留言