Flex Mobile文本在滚动条文本滞后中输入



我在flex移动应用程序的textInput容器中看到了输入文本的奇怪滞后。当我在文本输入中键入一些文本,然后向任何方向滚动时,就会出现问题。除了textInput中的文本外,整个屏幕和所有对象似乎都在移动。

当我选择textInput开始打字时,这就成了一个很大的问题,软键盘出现并移动输入,然后将光标和键入的文本放在屏幕上的其他地方。看起来很糟糕。

这是一般性能问题吗?关于如何修复有什么建议吗?

代码是基本的:

 <s:Scroller x="0" y="0" width="100%" height="100%" verticalScrollPolicy="on" >
      <s:Group> 
         <s:TextArea softKeyboardType="number" id="ti1" y="145" width="390" height="75"                      fontSize="36" fontWeight="bold" horizontalCenter="0" text=" "/>
      </s:Group>
    </s:Scroller>

经过几个小时的谷歌搜索,我自己找到了答案。在textinput语句中,您需要添加skinClass="spark.skins.mobile.TextInputSkin"

如果看起来像这样。

<s:Scroller x="0" y="0" width="100%" height="100%" verticalScrollPolicy="on" >
    <s:Group>   
    <s:TextInput skinClass="spark.skins.mobile.TextInputSkin"/>     
    </s:Group>
    </s:Scroller>

这将防止在实际运行应用程序时文本从文本输入框中"飞出"。我确实看到一些人提到,当你这样做时,软键盘将不起作用,但我似乎对此没有意见,所以也许这已经得到了解决。希望这对其他人和我一样有用。

要覆盖所有TextInputs,请使用CSS。

s|TextInput
{
skinClass: ClassReference("spark.skins.mobile.TextInputSkin");
}

现在softKeyboardType="{softKeyboardType.NUMBER}"不再工作。

有什么想法吗?

对于移动应用程序,必须使用StageTextInputSkin和StageTextAreaSkin:

<s:TextInput restrict="0-9" maxChars="3"
             skinClass="spark.skins.mobile.StageTextInputSkin"
             softKeyboardType="{SoftKeyboardType.NUMBER}"/>
<s:TextArea restrict="0-9" maxChars="3"
            skinClass="spark.skins.mobile.StageTextAreaSkin"/>

此问题已在Apache Flex SDK版本4.12.0 中修复

请参阅此链接Apache FLEX JIRA

如果您使用的是较旧的SDK,请签出此组件ExtendedSStageTextInput

希望这能帮助到一些人。。。。

最新更新