文本输入在iOS上不起作用;Multitouch.MapTouchToUse=false";?
(与Flash Professional CC合作。)文本输入在iOS上不起作用;Multitouch.MapTouchToUse=false";?,ios,actionscript-3,air,Ios,Actionscript 3,Air,(与Flash Professional CC合作。) 我有一个swf,它只包含一个TextInput和第1帧中的以下脚本: Multitouch.mapTouchToMouse = false; Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; 将此swf for AIR 3.6 for iOS发布后,无论我点击多少次,TextInput都不会占据焦点(显然,它在没有MapTouchToUse=false的情况下工作) 这是一个已
我有一个swf,它只包含一个TextInput和第1帧中的以下脚本:
Multitouch.mapTouchToMouse = false;
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
将此swf for AIR 3.6 for iOS发布后,无论我点击多少次,TextInput都不会占据焦点(显然,它在没有MapTouchToUse=false
的情况下工作)
这是一个已知问题和/或有任何解决方法吗?这是Flex TextInput吗?无论如何,问题很可能是组件依赖于
MouseEvent
来设置焦点。将MapTouchToUse
设置为false意味着所有交互都会触发TouchEvent
而不是MouseeEvent
。将其设置为true将同时激发这两个属性。除了由于不必触发双倍事件而导致性能的轻微提升之外,我想不出任何理由希望将此设置为false,因为除了轻微(可能不明显)的性能提升之外,没有任何好处
另外,从live docs获取:
将此属性设置为false可能会导致依赖鼠标事件的现有代码、库和框架在支持触摸输入的设备上无法正常工作
我用一个扩展Textfield的类解决了这个问题,在它的构造函数中我添加了一个TouchEvent.TOUCH\u TAP,如下所示:
private function onTap(event:TouchEvent):void{
stage.focus = this;
this.requestSoftKeyboard();
}
这将模仿普通文本字段的行为。遗憾的是,我有一个很好的理由:它完全杀死了“按钮文字”,否则会对性能产生重大影响(通过Scout分析)。如果你有任何关于如何禁用按钮书写的想法,请告诉我。有趣的是,我以前从来没有注意过。看起来它占用了我正在开发的应用程序所有活动时间的6%(在某些情况下高达50%)。您可以尝试滚动依赖于TouchEvent而不是mouseEvent的自己的TextInput组件。我甚至尝试手动监听textfield上的
TOUCH\u TAP
和TOUCH\u BEGIN
事件,然后将它们转换为mouseEvent
s(鼠标向下
和单击
)通过真实的文本输入发送这些信息,但都没有用。