Advertisement
Guest User

Untitled

a guest
Jul 26th, 2014
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.26 KB | None | 0 0
  1. package com.as3nui.nativeExtensions.air.kinect.examples.skeleton {
  2. import com.as3nui.nativeExtensions.air.kinect.Kinect;
  3. import com.as3nui.nativeExtensions.air.kinect.KinectSettings;
  4. import com.as3nui.nativeExtensions.air.kinect.data.User;
  5. import com.as3nui.nativeExtensions.air.kinect.events.UserEvent;
  6. import com.as3nui.nativeExtensions.air.kinect.examples.DemoBase;
  7.  
  8. import flash.display.Sprite;
  9. import flash.events.Event;
  10. import flash.geom.Point;
  11.  
  12.  
  13.  
  14. public class SkeletonJointsDemo extends DemoBase {
  15. public static const KinectMaxDepthInFlash:uint = 200;
  16.  
  17. private var device:Kinect;
  18. private var skeletonRenderers:Vector.<SkeletonRenderer>;
  19. private var skeletonContainer:Sprite;
  20.  
  21. override protected function startDemoImplementation():void {
  22. if (Kinect.isSupported()) {
  23. device = Kinect.getDevice();
  24.  
  25. var settings:KinectSettings = new KinectSettings();
  26. settings.skeletonEnabled = true;
  27. settings.skeletonMirrored = true;
  28.  
  29. device.addEventListener(UserEvent.USERS_WITH_SKELETON_ADDED, skeletonsAddedHandler, false, 0, true);
  30. device.addEventListener(UserEvent.USERS_WITH_SKELETON_REMOVED, skeletonsRemovedHandler, false, 0, true);
  31.  
  32. skeletonRenderers = new Vector.<SkeletonRenderer>();
  33. skeletonContainer = new Sprite();
  34. addChild(skeletonContainer);
  35.  
  36. addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true);
  37. device.start(settings);
  38. }
  39. }
  40.  
  41. protected function skeletonsRemovedHandler(event:UserEvent):void {
  42. for each(var removedUser:User in event.users) {
  43. var index:int = -1;
  44. for (var i:int = 0; i < skeletonRenderers.length; i++) {
  45. if (skeletonRenderers[i].user == removedUser) {
  46. index = i;
  47. break;
  48. }
  49. }
  50. if (index > -1) {
  51. skeletonContainer.removeChild(skeletonRenderers[index]);
  52. skeletonRenderers.splice(index, 1);
  53. }
  54. }
  55. }
  56.  
  57. protected function skeletonsAddedHandler(event:UserEvent):void {
  58. for each(var addedUser:User in event.users) {
  59. var skeletonRenderer:SkeletonRenderer = new SkeletonRenderer(addedUser);
  60. skeletonContainer.addChild(skeletonRenderer);
  61. skeletonRenderers.push(skeletonRenderer);
  62. }
  63. }
  64.  
  65. protected function enterFrameHandler(event:Event):void {
  66. for each(var skeletonRenderer:SkeletonRenderer in skeletonRenderers) {
  67. skeletonRenderer.explicitWidth = explicitWidth;
  68. skeletonRenderer.explicitHeight = explicitHeight;
  69. skeletonRenderer.render();
  70. }
  71. }
  72.  
  73. override protected function stopDemoImplementation():void {
  74. if (device != null) {
  75. removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
  76. device.removeEventListener(UserEvent.USERS_WITH_SKELETON_ADDED, skeletonsAddedHandler);
  77. device.removeEventListener(UserEvent.USERS_WITH_SKELETON_REMOVED, skeletonsRemovedHandler);
  78. device.stop();
  79. }
  80. }
  81.  
  82. override protected function layout():void {
  83. if (skeletonContainer != null) {
  84.  
  85. }
  86. if (root != null) {
  87. root.transform.perspectiveProjection.projectionCenter = new Point(explicitWidth * .5, explicitHeight * .5);
  88. }
  89. }
  90. }
  91. }
  92.  
  93. import com.as3nui.nativeExtensions.air.kinect.data.SkeletonJoint;
  94. import com.as3nui.nativeExtensions.air.kinect.data.User;
  95. import com.bit101.components.Label;
  96.  
  97. import flash.display.Sprite;
  98. import flash.display.MovieClip;
  99.  
  100. import flash.display.Loader;
  101. import flash.net.URLRequest;
  102.  
  103. import flash.events.Event;
  104. import flash.media.Sound;
  105. import flash.net.URLRequest;
  106.  
  107.  
  108. internal class SkeletonRenderer extends Sprite {
  109.  
  110. public var user:User;
  111. private var labels:Vector.<Label>;
  112. private var circles:Vector.<Sprite>;
  113.  
  114. public var explicitWidth:uint;
  115. public var explicitHeight:uint;
  116.  
  117. public var LD3:DRUM1 = new DRUM1();
  118. public var LD1:DRUM2 = new DRUM2();
  119. public var RD3:DRUM3 = new DRUM3();
  120. public var RD1:DRUM4 = new DRUM4();
  121. public var LD2:DRUM5 = new DRUM5();
  122. public var BD:DRUM6 = new DRUM6();
  123. public var RD2:DRUM7 = new DRUM7();
  124.  
  125.  
  126.  
  127. public var loader:Loader = new Loader();
  128. public var urlReq:URLRequest = new URLRequest("finalstar.swf");
  129.  
  130. public function SkeletonRenderer(user:User) {
  131. this.user = user;
  132. labels = new Vector.<Label>();
  133. circles = new Vector.<Sprite>();
  134. loader.load(urlReq);
  135. addChild(loader);
  136. }
  137.  
  138. private function createLabelsIfNeeded():void {
  139. while (labels.length < user.skeletonJoints.length) {
  140. labels.push(new Label(this));
  141. }
  142. }
  143.  
  144. private function createCirclesIfNeeded():void {
  145. while (circles.length < user.skeletonJoints.length) {
  146. var circle:Sprite = new Sprite();
  147. circle.graphics.beginFill(0xff0000);
  148. circle.graphics.drawCircle(0, 0, 10);
  149. circle.graphics.endFill();
  150. addChild(circle);
  151. circles.push(circle);
  152. }
  153. }
  154.  
  155. public function render():void {
  156. //graphics.clear();
  157.  
  158. LD1.x = 310;
  159. LD1.y = 120;
  160. LD2.x = 230;
  161. LD2.y = 300;
  162. LD3.x = 290;
  163. LD3.y = 480;
  164. RD1.x = 710;
  165. RD1.y = 120;
  166. RD2.x = 790;
  167. RD2.y = 300;
  168. RD3.x = 730;
  169. RD3.y = 480;
  170. BD.x = 510;
  171. BD.y = 480;
  172. addChild(LD1);
  173. addChild(LD2);
  174. addChild(LD3);
  175. addChild(RD1);
  176. addChild(RD2);
  177. addChild(RD3);
  178. addChild(BD);
  179.  
  180. function onSoundLoaded(event:Event):void
  181. {
  182.  
  183. var localSound:Sound = event.target as Sound;
  184. localSound.play();
  185. }
  186.  
  187. var numJoints:uint = user.skeletonJoints.length;
  188. var left_hand_drum2:Boolean = false;
  189. var s:Sound;
  190. var req:URLRequest;
  191. //create labels
  192. createLabelsIfNeeded();
  193. createCirclesIfNeeded();
  194. for (var i:int = 0; i < numJoints; i++) {
  195. var joint:SkeletonJoint = user.skeletonJoints[i];
  196. var label:Label = labels[i];
  197. var circle:Sprite = circles[i];
  198. //circle
  199. circle.x = joint.position.depthRelative.x * explicitWidth;
  200. circle.y = joint.position.depthRelative.y * explicitHeight;
  201. //trace(mc_blue);
  202. //mc_blue = new MovieClip() as DRUM5;
  203. //mc_blue.visible = false;
  204.  
  205. //*********************LEFT HAND**********************/
  206. if(label.text == "left_hand"){
  207. trace("X: " + circle.x + " ,Y: " + circle.y);
  208.  
  209. //for (i=0;i<1;i++){
  210. if(circle.x >= 260 && circle.x <= 360 && circle.y >= 70 && circle.y <= 170){
  211. //audio
  212. var s:Sound = new Sound();
  213. s.addEventListener(Event.COMPLETE, onSoundLoaded);
  214. var req:URLRequest = new URLRequest("Crash Cymbal.mp3");
  215. s.load(req);
  216.  
  217. //}
  218.  
  219. }
  220. if(circle.x >= 180 && circle.x <= 280 && circle.y >= 250 && circle.y <= 350){
  221. //audio
  222.  
  223. var s:Sound = new Sound();
  224. s.addEventListener(Event.COMPLETE, onSoundLoaded);
  225. var req:URLRequest = new URLRequest("Snare Drum 2.mp3");
  226. s.load(req);
  227.  
  228. }
  229. if(circle.x >= 240 && circle.x <= 340 && circle.y >= 430 && circle.y <= 530){
  230. //audio
  231. // any code here will run only once.
  232. var s:Sound = new Sound();
  233. s.addEventListener(Event.COMPLETE, onSoundLoaded);
  234. var req:URLRequest = new URLRequest("Low Tom.mp3");
  235. s.load(req);
  236. }
  237. if(circle.x >= 430 && circle.x <= 590 && circle.y >= 400 && circle.y <= 560){
  238. //audio
  239. // any code here will run only once.
  240. var s:Sound = new Sound();
  241. s.addEventListener(Event.COMPLETE, onSoundLoaded);
  242. var req:URLRequest = new URLRequest("Bass.mp3");
  243. s.load(req);
  244. }
  245. //*********************RIGHT HAND**********************/
  246. if(label.text == "right_hand"){
  247. trace("X: " + circle.x + " ,Y: " + circle.y);
  248.  
  249. //mc_blue.visible = false;
  250. if(circle.x >= 660 && circle.x <= 760 && circle.y >= 70 && circle.y <= 170){
  251. //audio
  252.  
  253. var s:Sound = new Sound();
  254. s.addEventListener(Event.COMPLETE, onSoundLoaded);
  255. var req:URLRequest = new URLRequest("Closed Hi Hat.mp3");
  256. s.load(req);
  257.  
  258. }
  259. if(circle.x >= 740 && circle.x <= 840 && circle.y >= 250 && circle.y <= 350){
  260. //audio
  261.  
  262. var s:Sound = new Sound();
  263. s.addEventListener(Event.COMPLETE, onSoundLoaded);
  264. var req:URLRequest = new URLRequest("Hi Tom.mp3");
  265. s.load(req);
  266.  
  267. }
  268. if(circle.x >= 680 && circle.x <= 780 && circle.y >= 430 && circle.y <= 530){
  269. //audio
  270.  
  271. var s:Sound = new Sound();
  272. s.addEventListener(Event.COMPLETE, onSoundLoaded);
  273. var req:URLRequest = new URLRequest("Mid Tom.mp3");
  274. s.load(req);
  275.  
  276. }
  277. if(circle.x >= 430 && circle.x <= 590 && circle.y >= 400 && circle.y <= 560){
  278. //audio
  279.  
  280. var s:Sound = new Sound();
  281. s.addEventListener(Event.COMPLETE, onSoundLoaded);
  282. var req:URLRequest = new URLRequest("Bass.mp3");
  283. s.load(req);
  284.  
  285. }
  286. }
  287.  
  288. //label
  289. label.text = joint.name;
  290. label.x = circle.x;
  291. label.y = circle.y;
  292. }
  293. }
  294. }
  295. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement