【发布时间】:2010-06-21 02:28:16
【问题描述】:
当我使用<s:Rect> 创建一个矩形时,我使用radiusX 获得圆角。问题是所有的圆度都是一样的。有没有类似于 Rect 的东西可以让我分别控制每个角的半径?如果没有,从头开始创建它的最佳方法是什么?图形库还是什么?
【问题讨论】:
标签: apache-flex actionscript-3 adobe mxml
当我使用<s:Rect> 创建一个矩形时,我使用radiusX 获得圆角。问题是所有的圆度都是一样的。有没有类似于 Rect 的东西可以让我分别控制每个角的半径?如果没有,从头开始创建它的最佳方法是什么?图形库还是什么?
【问题讨论】:
标签: apache-flex actionscript-3 adobe mxml
您可以通过为 topRightRadiusX、topLeftRadiusX、bottomRightRadiusX 和 bottomLeftRadiusX 属性设置特定值而不是设置 radiusX 来对 Rect 执行此操作。
【讨论】:
public var rectangle:Shape=new Shape();
public var temp:int=1;
public var ui:UIComponent=new UIComponent();
public var i:int=new int;
public var j:int=new int;
public var n:int=0;
public function init(event:Event):void
{
ui.addChild(rectangle);
myCanvas.addChild(ui);
rectangle.graphics.lineStyle(4,0x0000FF,1,false,"normal","none","bevel",9);
rectangle.graphics.drawRoundRect(20,20,200,200,0,0);
}
private function changeSize():void
{
if(temp>=1)
{
rectangle.graphics.clear();
}
rectangle.graphics.lineStyle(4,0x0000FF,1,false,"normal","none","bevel",9);
rectangle.graphics.drawRoundRect(20,20,200,200,hSlider.value,hSlider.value);
}
]]>
</mx:Script>
<mx:Canvas height="100%" width="100%" id="myCanvas">
<mx:HSlider id="hSlider" minimum="0" maximum="170" value="0"
dataTipPlacement="top"
snapInterval="1" tickInterval="1"
labels="['0%','100%']"
liveDragging="true"
change="changeSize();" x="25" y="233"/>
</mx:Canvas>
【讨论】:
您可能想在此处查看 StyledBox 组件:http://carrythezero.net/blog/2009/06/01/flex-rounding-specific-corners-on-a-box/
它扩展了盒子,你可以通过 CSS 指定你想要圆角。
【讨论】: