There are many layers of "coordinate spaces" if I may call them that between the native stage and a citrus object. let's get rid of the native stage though , we can start at the starling stage (the difference between the two is described by CitrusEngine.transformMatrix which represent the viewport position and the starling stage's scale - or contentScaleFactor) .
There are actually more layers of display object containers but some are not moving and not scaling by default so what is important is the sprite in which citrus objects are represented , because this sprite is moved by the camera system - that's when using globalX and globalY completely fails.
if you want to test for touch like that using bounds, you need a touch point inside the "citrus space" if you will.
the camera of a state has a transformMatrix property which represents exactly the citrus space transformation (rotation, translation, scale)
The StarlingCamera has the following function which takes in a "global" position , and gives you a position in the citrus world :
protected var resultPoint:Point = new Point();
with this you can use resultPoint for your test instead of using t.globalX/t.globalY .
you could also grab the sprite that the camera is moving directly and use globalToLocal :
protected var touchPos:Point = new Point();
protected var resultTouchPos:Point = new Point();
//when you get your touch
((view as StarlingView).viewRoot as Sprite).globalToLocal(touchPos,resultTouchPos);
and then resultTouchPos will be a point in the "citrus space" as well.
So there are these two ways, the first is nicer, then there is other ways where you transform the point yourself using camera.transformMatrix ... you could even transform a point in the native flash space right to citrus by concatenating _ce.transformMatrix and camera.transformMatrix in the right order but that's not practical in your case because you already have a point in the starling stage space. I'm just pointing out that we have solutions, some are not as pretty as others, but I tried to make sure they are there, I hope my explanation on the relationship between things is ok.
Oh and you can also check if a touch's target's parent or parent of a parent (or higher in the hierarchy because it really depends on what you set a view to be) is a StarlingArt object, because all citrus objects will have created and placed a StarlingArt object in the citrus world which contains your "real view". if you manage to find the StarlingArt object by touch - its easy most of time it is touch.target.parent but it could be touch.target.parent.parent and so on,
then you can do that :
if(touch.target.parent && touch.target.parent is StarlingArt)
var myCitrusObject :CitrusObject = (touch.target.parent as StarlingArt).citrusObject;
if(myCitrusObject is AnyCitrusObjectClass)
trace("do something with it.");
I think this way is nice too and doesn't require transforming point,
it just requires understanding how your view is and how high in the parents of the target would the StarlingArt be (because if your view is a DisplayObject container with many layers there could be many results)