# Multitouch issues on touch tv, but works on macbook pro

**URL:** <https://forum.kirupa.com/t/multitouch-issues-on-touch-tv-but-works-on-macbook-pro/322656>\
**Category:** Uncategorized\
**Created:** [May 29, 2011, 12:26am UTC](https://forum.kirupa.com/t/multitouch-issues-on-touch-tv-but-works-on-macbook-pro/322656 "2011-05-29T00:26:15Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![ilikebigbutts](https://avatars.discourse-cdn.com/v4/letter/i/dfb087/32.png) [@ilikebigbutts](https://forum.kirupa.com/u/ilikebigbutts)\
**Post date:** [May 29, 2011, 12:26am UTC](https://forum.kirupa.com/t/multitouch-issues-on-touch-tv-but-works-on-macbook-pro/322656/1 "2011-05-29T00:26:15Z")

</div>

hi im making a multitouch sample with AIR

it work perfectly on a macbook pro touchpad, but when i used a touchscreen tv by Nlighten (it uses infrared sensors) it only work on the empty stage not the objects itself, anyone have the solution , or explanation fo this? ill post the code downstairs  
so for some reason stage zoom and rotate works but items wont

(youll need a box on the library and link it with the name “box” to try, and publish it with AIR 2)

```auto

import flash.display.StageDisplayState;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.TransformGestureEvent;

stage.displayState=StageDisplayState.FULL_SCREEN_INTERACTIVE;
stage.scaleMode = StageScaleMode.NO_SCALE
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(TransformGestureEvent.GESTURE_ZOOM, onStageZoom);
stage.addEventListener(TransformGestureEvent.GESTURE_ROTATE, onStageRotate);

var con:Sprite = new Sprite();
con.x = stage.stageWidth * 0.5;
con.y = stage.stageHeight * 0.5;
addChild(con)

for(var i:uint=0; i<10; ++i)
{
   var b:Sprite = Sprite(new box());
   b.x = Math.random() * stage.stageWidth 
   b.y = Math.random() * stage.stageHeight 
   b.rotation = Math.random() * 360;
   b.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
   b.addEventListener(MouseEvent.MOUSE_UP, onUp);
   b.addEventListener(TransformGestureEvent.GESTURE_ZOOM, onZoom);
   b.addEventListener(TransformGestureEvent.GESTURE_ROTATE, onRotate);
   con.addChild(b);
}
function onDown (e:MouseEvent):void
{
   var b:Sprite = Sprite(e.currentTarget);
   con.addChild(b);
   b.startDrag();
}
function onUp (e:MouseEvent):void
{
   var b:Sprite = Sprite(e.currentTarget);
   
   b.stopDrag();
}
function onZoom (e:TransformGestureEvent):void
{
   e.stopImmediatePropagation();
   var b:Sprite = Sprite(e.currentTarget);
   b.scaleX *= e.scaleX;
   b.scaleY = b.scaleX;
}
function onRotate (e:TransformGestureEvent):void
{
   e.stopImmediatePropagation();
   var b:Sprite = Sprite(e.currentTarget);
   b.rotation += e.rotation;
}

function onStageZoom (e:TransformGestureEvent):void
{
   
   con.scaleX *= e.scaleX;
   con.scaleY *= e.scaleX;
}
function onStageRotate (e:TransformGestureEvent):void
{
   con.rotation += e.rotation;
}

```
