使用Flex 3 SDK时,您只需将borderThickness样式设置为0或将borderStyle设置为none即可。但在Flex 4 SDK和Spark主题中,这没有任何效果。
使用Flex 3 SDK时,您只需将borderThickness样式设置为0或将borderStyle设置为none即可。但在Flex 4 SDK和Spark主题中,这没有任何效果。
可以尝试以下方式:
borderVisible="false"
s|TextArea {
borderVisible : false;
}
.noBorder {
borderVisible : false;
}
...
<s:TextArea styleName="noBorder"/>
您可以通过创建完成来关闭它,如下所示:
<s:Application ...
creationComplete="onCreationComplete()"/>
...
private function onCreationComplete() : void {
mySparkTextArea.setStyle('borderVisible', false);
}
...
<s:TextArea id="mySparkTextArea"/>
</s:Application>
...
<!-- border/fill -->
<s:Rect left="0" right="0" top="0" bottom="0">
<s:stroke>
<s:SolidColorStroke color="#5C5C5C" weight="1" alpha="0"/>
</s:stroke>
<s:fill>
<s:SolidColor color="#FFFFFF"/>
</s:fill>
</s:Rect>
...
你必须将borderSkin设置为null
<mx:TextArea borderSkin={null} />
我还没有涉足Flash Builder 4,但我知道在Flex 3中,您可以修改这样的东西(当其他方式不可行时):
var tb:TextInput = new TextInput();
tb.getChildAt(0).setStyle(...);
你可以试试这个方法,通常只需要找到正确的子元素即可。
编辑: 这里是你的答案
我尝试了上面的代码,但在Flex Hero SDK 4.5中并没有起作用。所以我选择了textArea并创建了一个新的自定义皮肤,并将边框透明度更改为0。
<!-- border/fill -->
<s:Rect left="0" right="0" top="0" bottom="0">
<s:stroke>
<s:SolidColorStroke color="#5C5C5C" weight="1" alpha="0"/>
</s:stroke>
<s:fill>
<s:SolidColor color="#FFFFFF"/>
</s:fill>
</s:Rect>
简单而甜美
Jeol的答案适用于MX组件,对于Flex 4 Spark文本区域组件,您需要设置borderVisible="false",并在代码中使用lblMessage.setStyle("contentBackgroundAlpha", 0)。
此外,如果您正在这样做,您可能希望使用hack使该死的东西自动调整大小以适应其内容...设置heightInLines="{NaN}"
<s:TextArea borderVisible="false" focusEnabled="false" width="100%" id="lblMessage" heightInLines="{NaN}" editable="false" selectable="true" lineBreak="toFit" verticalScrollPolicy="off" horizontalScrollPolicy="off" />
protected function OnCreationComplete(objEvent:Event):void{
lblMessage.setStyle("contentBackgroundAlpha", 0);
}
...感谢RobotLegs,它真是太棒了!