2013-01-20 27 views
1

我在移動應用程序中有一個TextArea,我想在某個事件上強制失效。到目前爲止,我可以做到這一點:如何在Flex 4 TextArea組件中強制失效?

myTextArea.width = myTextArea.width + 1; 

我知道它的作品,因爲文本區域更新正確。

我已經盡力「正確地」做使用下列內容:

testing.invalidateProperties(); 
testing.invalidateDisplayList(); 
testing.invalidateSize(); 
testing.validateNow(); 
parentGroup.invalidateProperties(); 
parentGroup.invalidateDisplayList(); 
parentGroup.invalidateSize(); 
parentGroup.validateNow(); 

以前的代碼都不工作。

TextArea正在使用StageTextAreaSkin。

UPDATE
這似乎工作以及設置寬度,但也是一個黑客,也不會與其餘部件同步:

testing.skin.styleChanged("anything"); 
+0

您認爲無效後會發生什麼?如果我們知道這一點,也許這可能暗示爲什麼無效方法不起作用,但改變寬度的確如此。 – JeffryHouser

+0

我想將它重新放置在它的容器中,它是一個卷軸中的vgroup。它可能有助於看到這個相關的問題http://stackoverflow.com/questions/14412301/flex-textarea-and-textinput-on-mobile-not-positioning-correctly –

+1

在Flex中,組件總是按其大小和位置家長。也許你需要使DisplayList或父項無效TextArea?更改寬度可能會強制父級重新計算。 – JeffryHouser

回答

0

我一直的唯一途徑發現強制驗證是調用myTextArea.setStyle(「anything_here」)或myTextArea.skin.setStyle(「anything_here」)。請注意,它可能是皮膚的缺陷,它是來自SDK的移動火花皮膚(不是我自己的創作)。更好的答案表示讚賞。