Highlighted

TOUCH_END stops firing on iPhone X and iPad in iOS 12

Engaged ,
Jan 10, 2019

Copy link to clipboard

Copied

We're seeing an issue with TOUCH_END on all versions of AIR on iOS 12, specifically with iPhone apps that aren't updated for iPhone X so they're displayed "letterboxed" with black area on the left and right, or with any iPhone-only apps that are played on an iPad where it's also letterboxed/framed with black space all around the app:

TOUCH_BEGIN and TOUCH_END will start out working correctly, but if you multi-touch by pressing and holding somewhere within the main stage area, then at the same time press and release in the black letterboxed area in the negative-coordinate space (beyond the left or top), after this occurs TOUCH_END will not fire for ANY primary touch points.

It's only happening when the multi-touch happens beyond the left and top edges where X and/or Y would be negative, though stageX/Y on the TOUCH_BEGIN event usually show a value between -0.5 and 0.5 regardless of where you're touching in that negative space.  If you move your finger a bit as you're doing the multitouch into the negative space, you can also see multiple BEGIN/END events firing rapidly if you're in that negative X/Y space.  Doing the multi-touch off-screen beyond the right/bottom of the stage area doesn't cause this problem, and doesn't fire a TOUCH_BEGIN or TOUCH_END in this area anyway.

To be clear, on iPhone X for an app that's not optimized for iPhone X (largest launch image is Default-568h@2x), this is happening when you 1) press and hold within the stage area, and 2) at the same time press and release in the black space beyond the left edge of the stage where it's letterboxed.  After this happens, no TOUCH_END events will be fired for any primary touch points at all (though TOUCH_BEGIN will still fire).  TOUCH_END events will strangely still occur on non-primary touch events, but not for primary ones.

Alternatively, on an app that's only designed for iPhone and played on an iPad (UIDeviceFamily 1), this same behavior occurs if you multi-touch with the second point beyond the left edge OR beyond the top edge (since iPad will letterbox it on all four sides with black).

We've noticed the behavior on iOS 12.1.x and not sure when this issue first started, though it's not occurring on older devices running iOS 9.3.5.  We've tested apps created with AIR 24, AIR 30, AIR 31, and AIR 32, and this same issue is occurring in all of them on devices running iOS 12.1, iOS 12.1.1, and iOS 12.1.2.

EDIT: If it helps, the affected apps are all fullscreen apps, scaleMode NO_SCALE, and aligned TOP_LEFT.

We haven't found a solution to this aside from having to exit the app completely and reopen it.  I've tried toggling Multitouch.inputMode to see if that would kick-start the touch events into working correctly again but that didn't make a difference.  If anyone has any ideas for how to solve this we'd love to hear them.  We're working towards updating older apps to handle the newer iPhone resolutions, but this problem will reoccur as soon as there's a new device ratio and it runs in its compatibility letterboxed mode again.

TOPICS
Development

Views

287

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

TOUCH_END stops firing on iPhone X and iPad in iOS 12

Engaged ,
Jan 10, 2019

Copy link to clipboard

Copied

We're seeing an issue with TOUCH_END on all versions of AIR on iOS 12, specifically with iPhone apps that aren't updated for iPhone X so they're displayed "letterboxed" with black area on the left and right, or with any iPhone-only apps that are played on an iPad where it's also letterboxed/framed with black space all around the app:

TOUCH_BEGIN and TOUCH_END will start out working correctly, but if you multi-touch by pressing and holding somewhere within the main stage area, then at the same time press and release in the black letterboxed area in the negative-coordinate space (beyond the left or top), after this occurs TOUCH_END will not fire for ANY primary touch points.

It's only happening when the multi-touch happens beyond the left and top edges where X and/or Y would be negative, though stageX/Y on the TOUCH_BEGIN event usually show a value between -0.5 and 0.5 regardless of where you're touching in that negative space.  If you move your finger a bit as you're doing the multitouch into the negative space, you can also see multiple BEGIN/END events firing rapidly if you're in that negative X/Y space.  Doing the multi-touch off-screen beyond the right/bottom of the stage area doesn't cause this problem, and doesn't fire a TOUCH_BEGIN or TOUCH_END in this area anyway.

To be clear, on iPhone X for an app that's not optimized for iPhone X (largest launch image is Default-568h@2x), this is happening when you 1) press and hold within the stage area, and 2) at the same time press and release in the black space beyond the left edge of the stage where it's letterboxed.  After this happens, no TOUCH_END events will be fired for any primary touch points at all (though TOUCH_BEGIN will still fire).  TOUCH_END events will strangely still occur on non-primary touch events, but not for primary ones.

Alternatively, on an app that's only designed for iPhone and played on an iPad (UIDeviceFamily 1), this same behavior occurs if you multi-touch with the second point beyond the left edge OR beyond the top edge (since iPad will letterbox it on all four sides with black).

We've noticed the behavior on iOS 12.1.x and not sure when this issue first started, though it's not occurring on older devices running iOS 9.3.5.  We've tested apps created with AIR 24, AIR 30, AIR 31, and AIR 32, and this same issue is occurring in all of them on devices running iOS 12.1, iOS 12.1.1, and iOS 12.1.2.

EDIT: If it helps, the affected apps are all fullscreen apps, scaleMode NO_SCALE, and aligned TOP_LEFT.

We haven't found a solution to this aside from having to exit the app completely and reopen it.  I've tried toggling Multitouch.inputMode to see if that would kick-start the touch events into working correctly again but that didn't make a difference.  If anyone has any ideas for how to solve this we'd love to hear them.  We're working towards updating older apps to handle the newer iPhone resolutions, but this problem will reoccur as soon as there's a new device ratio and it runs in its compatibility letterboxed mode again.

TOPICS
Development

Views

288

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Jan 10, 2019 0
Explorer ,
Jan 14, 2019

Copy link to clipboard

Copied

We have just noticed this on the new iPad Pro 11" since AIR doesn't support its full resolution. Please vote for this issue to get it fixed.

We have found a way to fix the touch issues by adding a 1px invisible (native) view to the edges of the screen. This prevents AIR from handling the touches inside the letterboxed area. We have developed an ANE to create a native letterbox for iOS devices that have a notch, but now also use it to prevent the letterbox touch issues. With the ANE, you can use the code below and the issue should go away:

NativeLetterbox.instance.setHorizontalLetterbox(1, 0x0, 0);

NativeLetterbox.instance.setVerticalLetterbox(1, 0x0, 0);

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Jan 14, 2019 2
Flipline LATEST
Engaged ,
Jan 16, 2019

Copy link to clipboard

Copied

Thanks so much for the ANE, we'll give that a try!  Would be great if Adobe would fix this TOUCH_END issue in a future update, but in the meantime this should help for any of our apps running on devices that aren't supported yet.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Jan 16, 2019 0