簡體   English   中英

在運行時將Flex組件寬度設置為100%?

[英]Set Flex component width to 100% at runtime?

如果我通過MXML創建輸入字段,我可以將寬度設置為100% 但我似乎無法在運行時通過ActionScript執行此操作。

這有效:

<mx:TextInput ... width="100%" />

這不會編譯,寬度是一個數字,而不是一個字符串:

var textinp:TextInput = new TextInput();
someContainer.addChild(textinp);
textinp.width = "100%"

如何通過ActionScript在運行時創建的組件上設置100%作為大小?

您只需使用percentWidth屬性,而不是width屬性。

因此,代碼中的第三行將是:

textinp.percentWidth = 100;

這也讓我失望了一段時間。

如果您以后想要切換回同一組件的基於像素的寬度,那么您需要做的就是:

textinp.percentWidth = NaN;

上面的答案是正確的,但我不能評論它因為我太新了。

如果要將此功能添加到自定義組件,可以執行以下操作:

[PercentProxy("percentMultiplier")]
public function set multiplier(value:Number):void
{
  _multiplier = value;
  invalidSomethingOrDoSomething();
}

public function set percentMultiplier(value:Number):void
{
  multiplier = value / 100;
}

當然,當你為寬度做這個時,Container子類正在尋找percentWidth ,並且不檢查metada,所以不要將它稱為widthInPercent或其他東西,即使你可以。

這是答案:

var textinp:TextInput = new TextInput();
someContainer.addChild(textinp);
textinp.percentWidth = 100;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM