在运行时将Flex组件宽度设置为100%?

dav*_*avr 9 apache-flex flash mxml actionscript-3 flex4

如果我正在创建输入字段MXML,我可以将宽度设置为100%.但我似乎无法在运行时通过ActionScript执行此操作.

这有效:

<mx:TextInput ... width="100%" />
Run Code Online (Sandbox Code Playgroud)

这不会编译,宽度是一个数字,而不是一个字符串:

var textinp:TextInput = new TextInput();
someContainer.addChild(textinp);
textinp.width = "100%"
Run Code Online (Sandbox Code Playgroud)

如何100%在运行时通过ActionScript 设置组件的大小?

Ros*_*son 23

您只需要使用percentWidth属性而不是width属性.

因此,代码中的第三行将是:

textinp.percentWidth = 100;
Run Code Online (Sandbox Code Playgroud)

这也让我失望了一段时间.


Dan*_*man 10

如果您以后想要切换回同一组件的基于像素的宽度,那么您需要做的就是:

textinp.percentWidth = NaN;
Run Code Online (Sandbox Code Playgroud)