2012-02-17 38 views
3

我已經看到在我的Flex移動應用程序輸入到textInput容器中的文本中存在一個奇怪的滯後。當我在textInput中輸入一些文本然後向任何方向滾動時,都會發生該問題。除了textInput中的文本之外,整個屏幕和所有對象似乎都會移動。Flex移動文本輸入滾動文本lag

當我選擇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> 

回答

5

我發現這個問題的答案我自己幾個小時google搜索後。在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> 

這會防止文本在實際運行應用程序時「飛出」文本輸入框。我確實看到了一些提及,當你這樣做時軟鍵盤不起作用,但我似乎沒有這個問題,所以可能已經解決了。希望這對其他人和我一樣有用。

+0

謝謝。該解決方案運行良好。我的風格有一些問題:我在表單中使用沒有邊框的TextInput,然後formItem的標籤與我的文本底部不一致。所以我不得不將paddingBottom設置爲-10,從而導致文本的下半部分被截斷。所以不是將paddingBottom設置爲-10,而是將其設置爲-5,將paddingTop設置爲10.這解決了我的問題。原因是手機皮膚將measuredHeight計算爲measuredHeight = paddingTop + textHeight + paddingBottom。 – 2013-06-21 09:11:22

3

要覆蓋所有TextInputs,請使用CSS。

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

這兩個答案都是正確的,雖然這是我在全球CSS中使用的答案。 – BajaBob 2012-04-17 13:31:03

3

現在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"/> 
0

這個問題是固定在Apache中的Flex SDK版本4.12.0

請參考以下鏈接 Apache FLEX JIRA

如果您正在使用較舊的SDK,然後檢出此組件ExtendedStageTextInput

希望這可能有助於一些....