/src/AS3SkinExporterStressTest.as

https://github.com/osoker/away3d-examples-broomstick · ActionScript · 142 lines · 111 code · 31 blank · 0 comment · 2 complexity · fc5ec94f3654384f4f6bcf4a6c71cb75 MD5 · raw file

  1. package {
  2. import away3d.arcane;
  3. import away3d.containers.View3D;
  4. import away3d.debug.AwayStats;
  5. import away3d.lights.DirectionalLight;
  6. import fr.nss.NSSClock;
  7. import fr.nss.duck.DuckPuppet;
  8. import fr.nss.duck.Ressource3D;
  9. import fr.nss.duck.World;
  10. import flash.display.Sprite;
  11. import flash.display.StageAlign;
  12. import flash.display.StageScaleMode;
  13. import flash.events.Event;
  14. import flash.geom.Vector3D;
  15. use namespace arcane;
  16. [SWF(width="1280", height="720", frameRate="30")]
  17. public class AS3SkinExporterStressTest extends Sprite{
  18. [Embed(source="/../embeds/duck/away.png")]
  19. private var AwayBMP : Class;
  20. [Embed(source="/../embeds/duck/nss.png")]
  21. private var NssBMP : Class;
  22. private var _count : Number = 0;
  23. public function AS3SkinExporterStressTest()
  24. {
  25. stage.scaleMode = StageScaleMode.NO_SCALE;
  26. stage.align = StageAlign.TOP_LEFT;
  27. setupView3D();
  28. addChild(new AwayStats(World.view));
  29. World.ressources=new Ressource3D();
  30. initMesh();
  31. initCredits();
  32. addEventListener(Event.ENTER_FRAME, _handleEnterFrame);
  33. }
  34. private function initCredits() : void {
  35. var awayButton:LinkPicture=new LinkPicture(new AwayBMP(),"http://www.away3d.com");
  36. awayButton.y=stage.stageHeight-awayButton.height;
  37. addChild(awayButton);
  38. var nssButton:LinkPicture=new LinkPicture(new NssBMP(),"http://www.not-so-stupid.com");
  39. nssButton.y=stage.stageHeight-nssButton.height;
  40. nssButton.x=awayButton.width;
  41. addChild(nssButton);
  42. }
  43. private function setupView3D() : void {
  44. World.view = new View3D();
  45. World.view.antiAlias=2;
  46. World.view.backgroundColor=0xCCCCCC;
  47. World.light = new DirectionalLight(-1, -1, 1);
  48. World.light.color = 0xffffff;
  49. World.view.camera.z=-500;
  50. World.view.camera.y=450;
  51. World.view.camera.x=-450;
  52. World.view.camera.lookAt(new Vector3D(0,150,0));
  53. World.view.scene.addChild(World.light);
  54. this.addChild(World.view);
  55. }
  56. private function initMesh() : void{
  57. var duck:DuckPuppet;
  58. for(var i:uint=0;i<9;i++){
  59. for(var j:uint=0;j<9;j++){
  60. duck=new DuckPuppet();
  61. duck.mesh.x=600*i-(600*5);
  62. duck.mesh.z=600*j-(600*5);
  63. duck.playAnim(null);
  64. World.view.scene.addChild(duck.mesh);
  65. }
  66. }
  67. }
  68. private function _handleEnterFrame(e : Event) : void{
  69. NSSClock.tick();
  70. _count += .01;
  71. World.view.camera.x = Math.sin(_count)*1200;
  72. World.view.camera.y = Math.abs(Math.sin(_count*.54)*600);
  73. World.view.camera.z = Math.cos(_count*.7)*1200;
  74. World.view.camera.lookAt(new Vector3D(0,150,0));
  75. World.view.render();
  76. }
  77. }
  78. }
  79. import flash.display.Bitmap;
  80. import flash.display.BitmapData;
  81. import flash.display.Sprite;
  82. import flash.events.MouseEvent;
  83. import flash.external.ExternalInterface;
  84. import flash.net.URLRequest;
  85. import flash.net.navigateToURL;
  86. class LinkPicture extends Sprite {
  87. private var _url : String;
  88. public function LinkPicture(_b:Bitmap,url:String) {
  89. _url = url;
  90. addChild(_b);
  91. buttonMode=true;
  92. addEventListener(MouseEvent.CLICK,clickEvt);
  93. addEventListener(MouseEvent.ROLL_OVER,rollEvt);
  94. addEventListener(MouseEvent.ROLL_OUT,outEvt);
  95. }
  96. private function outEvt(event : MouseEvent) : void {
  97. alpha=1;
  98. }
  99. private function rollEvt(event : MouseEvent) : void {
  100. alpha=.5;
  101. }
  102. private function clickEvt(event : MouseEvent) : void {
  103. try {
  104. var link:URLRequest = new URLRequest( _url);
  105. navigateToURL ( link , "_self");
  106. }
  107. catch (myError:Error) {
  108. ExternalInterface.call("window.open", _url, "_self", "");
  109. }
  110. }
  111. }