I'll take a crack at a possible place to investigate. Just speaking to the Starling code you posted (maybe the other is the same), I am seeing a 'onEnterFrame' function of yours and there you are driving the movement of an object explicitly when you get an onEnterFrame. Are you attaching an ENTER_FRAME listener to the native stage itself or are you using a Starling ENTER_FRAME event? Look at the Starling source and see the sequence that happens in nextFrame() and advanceTime(passedTime), which like any framework is what defines the engine's unique event loop sequence. You don't say which version of Starling you are using (and the order of function calls inside advanceTime() might have changed between versions) so you want to confirm with the version you are using: In the latest Starling 1.3 the sequence goes: 1) TouchProcessor.advanceTime all the latest queued touches are processed, hitTested against objects, updated and events are sent out for touches based on their found targets 2) stage.advanceTime this is where the Starling ENTER_FRAME is dispatched to all listeners of the Starling version of ENTER_FRAME 3) juggler.advanceTime any animations, tweens and IAnimatable objects are told to update their time 4) Finally render() is called after advanceTime(), using latest positions of the display list rendered to the screen Given that you are forcing an object movement in an ENTER_FRAME trigger, if it is a Starling triggered enterFrame, then you might be updating its position and getting it rendered into a new position *after* the touches have already processed for the same 'current frame'. One way to test if this is the source of your issue, if you are listening on a Starling ENTER_FRAME event, change your onEnterFrame function that is moving an object explicitly and instead attach that function to the *nativeStage*'s Event.ENTER_FRAME only, and use a priority > 0 so that it will be called *completely before* Starling's event loop is processed for the same nativeStage ENTER_FRAME event. nativeStage.addEventListener(Event.ENTER_FRAME, yourEnterFrame, false, 1, true); That should move the object to its new position *before* Starling's touch processing occurs, and I wonder if you would see a difference in your attempts to touch the object when it is appearing on screen. Just a conjecture on my part, haven't tried it, just a theory.
... View more