Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.as3nui.nativeExtensions.air.kinect.examples.skeleton {
- import com.as3nui.nativeExtensions.air.kinect.Kinect;
- import com.as3nui.nativeExtensions.air.kinect.KinectSettings;
- import com.as3nui.nativeExtensions.air.kinect.data.User;
- import com.as3nui.nativeExtensions.air.kinect.events.UserEvent;
- import com.as3nui.nativeExtensions.air.kinect.examples.DemoBase;
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.geom.Point;
- public class SkeletonJointsDemo extends DemoBase {
- public static const KinectMaxDepthInFlash:uint = 200;
- private var device:Kinect;
- private var skeletonRenderers:Vector.<SkeletonRenderer>;
- private var skeletonContainer:Sprite;
- override protected function startDemoImplementation():void {
- if (Kinect.isSupported()) {
- device = Kinect.getDevice();
- var settings:KinectSettings = new KinectSettings();
- settings.skeletonEnabled = true;
- settings.skeletonMirrored = true;
- device.addEventListener(UserEvent.USERS_WITH_SKELETON_ADDED, skeletonsAddedHandler, false, 0, true);
- device.addEventListener(UserEvent.USERS_WITH_SKELETON_REMOVED, skeletonsRemovedHandler, false, 0, true);
- skeletonRenderers = new Vector.<SkeletonRenderer>();
- skeletonContainer = new Sprite();
- addChild(skeletonContainer);
- addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true);
- device.start(settings);
- }
- }
- protected function skeletonsRemovedHandler(event:UserEvent):void {
- for each(var removedUser:User in event.users) {
- var index:int = -1;
- for (var i:int = 0; i < skeletonRenderers.length; i++) {
- if (skeletonRenderers[i].user == removedUser) {
- index = i;
- break;
- }
- }
- if (index > -1) {
- skeletonContainer.removeChild(skeletonRenderers[index]);
- skeletonRenderers.splice(index, 1);
- }
- }
- }
- protected function skeletonsAddedHandler(event:UserEvent):void {
- for each(var addedUser:User in event.users) {
- var skeletonRenderer:SkeletonRenderer = new SkeletonRenderer(addedUser);
- skeletonContainer.addChild(skeletonRenderer);
- skeletonRenderers.push(skeletonRenderer);
- }
- }
- protected function enterFrameHandler(event:Event):void {
- for each(var skeletonRenderer:SkeletonRenderer in skeletonRenderers) {
- skeletonRenderer.explicitWidth = explicitWidth;
- skeletonRenderer.explicitHeight = explicitHeight;
- skeletonRenderer.render();
- }
- }
- override protected function stopDemoImplementation():void {
- if (device != null) {
- removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
- device.removeEventListener(UserEvent.USERS_WITH_SKELETON_ADDED, skeletonsAddedHandler);
- device.removeEventListener(UserEvent.USERS_WITH_SKELETON_REMOVED, skeletonsRemovedHandler);
- device.stop();
- }
- }
- override protected function layout():void {
- if (skeletonContainer != null) {
- }
- if (root != null) {
- root.transform.perspectiveProjection.projectionCenter = new Point(explicitWidth * .5, explicitHeight * .5);
- }
- }
- }
- }
- import com.as3nui.nativeExtensions.air.kinect.data.SkeletonJoint;
- import com.as3nui.nativeExtensions.air.kinect.data.User;
- import com.bit101.components.Label;
- import flash.display.Sprite;
- import flash.display.MovieClip;
- import flash.display.Loader;
- import flash.net.URLRequest;
- import flash.events.Event;
- import flash.media.Sound;
- import flash.net.URLRequest;
- internal class SkeletonRenderer extends Sprite {
- public var user:User;
- private var labels:Vector.<Label>;
- private var circles:Vector.<Sprite>;
- public var explicitWidth:uint;
- public var explicitHeight:uint;
- public var LD3:DRUM1 = new DRUM1();
- public var LD1:DRUM2 = new DRUM2();
- public var RD3:DRUM3 = new DRUM3();
- public var RD1:DRUM4 = new DRUM4();
- public var LD2:DRUM5 = new DRUM5();
- public var BD:DRUM6 = new DRUM6();
- public var RD2:DRUM7 = new DRUM7();
- public var loader:Loader = new Loader();
- public var urlReq:URLRequest = new URLRequest("finalstar.swf");
- public function SkeletonRenderer(user:User) {
- this.user = user;
- labels = new Vector.<Label>();
- circles = new Vector.<Sprite>();
- loader.load(urlReq);
- addChild(loader);
- }
- private function createLabelsIfNeeded():void {
- while (labels.length < user.skeletonJoints.length) {
- labels.push(new Label(this));
- }
- }
- private function createCirclesIfNeeded():void {
- while (circles.length < user.skeletonJoints.length) {
- var circle:Sprite = new Sprite();
- circle.graphics.beginFill(0xff0000);
- circle.graphics.drawCircle(0, 0, 10);
- circle.graphics.endFill();
- addChild(circle);
- circles.push(circle);
- }
- }
- public function render():void {
- //graphics.clear();
- LD1.x = 310;
- LD1.y = 120;
- LD2.x = 230;
- LD2.y = 300;
- LD3.x = 290;
- LD3.y = 480;
- RD1.x = 710;
- RD1.y = 120;
- RD2.x = 790;
- RD2.y = 300;
- RD3.x = 730;
- RD3.y = 480;
- BD.x = 510;
- BD.y = 480;
- addChild(LD1);
- addChild(LD2);
- addChild(LD3);
- addChild(RD1);
- addChild(RD2);
- addChild(RD3);
- addChild(BD);
- function onSoundLoaded(event:Event):void
- {
- var localSound:Sound = event.target as Sound;
- localSound.play();
- }
- var numJoints:uint = user.skeletonJoints.length;
- var left_hand_drum2:Boolean = false;
- var s:Sound;
- var req:URLRequest;
- //create labels
- createLabelsIfNeeded();
- createCirclesIfNeeded();
- for (var i:int = 0; i < numJoints; i++) {
- var joint:SkeletonJoint = user.skeletonJoints[i];
- var label:Label = labels[i];
- var circle:Sprite = circles[i];
- //circle
- circle.x = joint.position.depthRelative.x * explicitWidth;
- circle.y = joint.position.depthRelative.y * explicitHeight;
- //trace(mc_blue);
- //mc_blue = new MovieClip() as DRUM5;
- //mc_blue.visible = false;
- //*********************LEFT HAND**********************/
- if(label.text == "left_hand"){
- trace("X: " + circle.x + " ,Y: " + circle.y);
- //for (i=0;i<1;i++){
- if(circle.x >= 260 && circle.x <= 360 && circle.y >= 70 && circle.y <= 170){
- //audio
- var s:Sound = new Sound();
- s.addEventListener(Event.COMPLETE, onSoundLoaded);
- var req:URLRequest = new URLRequest("Crash Cymbal.mp3");
- s.load(req);
- //}
- }
- if(circle.x >= 180 && circle.x <= 280 && circle.y >= 250 && circle.y <= 350){
- //audio
- var s:Sound = new Sound();
- s.addEventListener(Event.COMPLETE, onSoundLoaded);
- var req:URLRequest = new URLRequest("Snare Drum 2.mp3");
- s.load(req);
- }
- if(circle.x >= 240 && circle.x <= 340 && circle.y >= 430 && circle.y <= 530){
- //audio
- // any code here will run only once.
- var s:Sound = new Sound();
- s.addEventListener(Event.COMPLETE, onSoundLoaded);
- var req:URLRequest = new URLRequest("Low Tom.mp3");
- s.load(req);
- }
- if(circle.x >= 430 && circle.x <= 590 && circle.y >= 400 && circle.y <= 560){
- //audio
- // any code here will run only once.
- var s:Sound = new Sound();
- s.addEventListener(Event.COMPLETE, onSoundLoaded);
- var req:URLRequest = new URLRequest("Bass.mp3");
- s.load(req);
- }
- //*********************RIGHT HAND**********************/
- if(label.text == "right_hand"){
- trace("X: " + circle.x + " ,Y: " + circle.y);
- //mc_blue.visible = false;
- if(circle.x >= 660 && circle.x <= 760 && circle.y >= 70 && circle.y <= 170){
- //audio
- var s:Sound = new Sound();
- s.addEventListener(Event.COMPLETE, onSoundLoaded);
- var req:URLRequest = new URLRequest("Closed Hi Hat.mp3");
- s.load(req);
- }
- if(circle.x >= 740 && circle.x <= 840 && circle.y >= 250 && circle.y <= 350){
- //audio
- var s:Sound = new Sound();
- s.addEventListener(Event.COMPLETE, onSoundLoaded);
- var req:URLRequest = new URLRequest("Hi Tom.mp3");
- s.load(req);
- }
- if(circle.x >= 680 && circle.x <= 780 && circle.y >= 430 && circle.y <= 530){
- //audio
- var s:Sound = new Sound();
- s.addEventListener(Event.COMPLETE, onSoundLoaded);
- var req:URLRequest = new URLRequest("Mid Tom.mp3");
- s.load(req);
- }
- if(circle.x >= 430 && circle.x <= 590 && circle.y >= 400 && circle.y <= 560){
- //audio
- var s:Sound = new Sound();
- s.addEventListener(Event.COMPLETE, onSoundLoaded);
- var req:URLRequest = new URLRequest("Bass.mp3");
- s.load(req);
- }
- }
- //label
- label.text = joint.name;
- label.x = circle.x;
- label.y = circle.y;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement