package { import com.as3nui.nativeExtensions.kinect.AIRKinect; import com.as3nui.nativeExtensions.kinect.data.SkeletonPosition; import com.as3nui.nativeExtensions.kinect.events.CameraFrameEvent; import com.as3nui.nativeExtensions.kinect.events.SkeletonFrameEvent; //無いと言われるのでコメントアウト //import com.as3nui.nativeExtensions.kinect.data.AIRKinectFlags; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.events.Event; import flash.geom.Vector3D; [SWF(width="640", height="480")] public class BasicKinect01 extends Sprite { private var _skeletonSprite:Sprite; private var _currentSkeletons:Vector.; private var _rgbImage:Bitmap; private var _depthImage:Bitmap; public function BasicKinect01() { _depthImage = new Bitmap(new BitmapData(640,480)); _depthImage.scaleX = _depthImage.scaleY = 1; this.addChild(_depthImage); //なぜかDepth画像が反転してるのを補正 _depthImage.scaleX = -1; _depthImage.x = _depthImage.width; _rgbImage = new Bitmap(new BitmapData(640,480)); _rgbImage.scaleX = _rgbImage.scaleY = .25; this.addChild(_rgbImage); _skeletonSprite = new Sprite(); this.addChild(_skeletonSprite); this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); this.addEventListener(Event.ENTER_FRAME, onEnterFrame); } protected function onAddedToStage(event:Event):void { initKinect(); } private function initKinect():void { //フラグを実数値に置き換える //Depth画像取得フラグも追加しとく //var flags:uint = AIRKinectFlags.NUI_INITIALIZE_FLAG_USES_SKELETON | AIRKinectFlags.NUI_INITIALIZE_FLAG_USES_COLOR; var flags:uint = 0x00000008 | 0x00000002 | 0x00000020; AIRKinect.initialize(flags, 2, 2); AIRKinect.addEventListener(CameraFrameEvent.RGB, onRGBFrame); AIRKinect.addEventListener(CameraFrameEvent.DEPTH, onDepthFrame); AIRKinect.addEventListener(SkeletonFrameEvent.UPDATE, onSkeletonFrame); } protected function onSkeletonFrame(event:SkeletonFrameEvent):void { _currentSkeletons = new []; if(event.skeletonFrame.numSkeletons >0){ for(var i:uint = 0; i