Apache flex adobeair应用程序中的角半径

Apache flex adobeair应用程序中的角半径,apache-flex,air,Apache Flex,Air,如何在空中的vbox控件上创建圆角 申请 我正在隐藏标题并将“透明”设置为true,但随后它不会显示 在应用程序中的VBox上显示圆角。我正在展示这个VBox 给用户 提前感谢。您可以通过实现自定义边框来实现这一点: package your.package { import flash.display.*; import flash.geom.*; import flash.utils.*; import mx.skins.halo.HaloBorder; import

如何在空中的vbox控件上创建圆角 申请

我正在隐藏标题并将“透明”设置为true,但随后它不会显示 在应用程序中的VBox上显示圆角。我正在展示这个VBox 给用户


提前感谢。

您可以通过实现自定义边框来实现这一点:

package your.package
{

  import flash.display.*;
  import flash.geom.*;
  import flash.utils.*;

  import mx.skins.halo.HaloBorder;
  import mx.utils.GraphicsUtil;

  public class RoundedBorder extends HaloBorder 
  {

    private var topCornerRadius:Number;
    private var bottomCornerRadius:Number;
    private var setup:Boolean;

    /**
     * Get the CSS style attributes from the element to which to apply this
     * gradient. 
     */
    private function readElementCssStyles():void
    {
      topCornerRadius = getStyle("cornerRadius") as Number;
      if (!topCornerRadius)
      { 
        topCornerRadius = 0;
      }    

      bottomCornerRadius = getStyle("bottomCornerRadius") as Number;
      if (!bottomCornerRadius) 
      {
        bottomCornerRadius = topCornerRadius;
      }  
    }

    /**
     * Paint the gradient background.
     *  
     * @param unscaledWidth
     * @param unscaledHeight
     * 
     */
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
    {
      super.updateDisplayList(unscaledWidth, unscaledHeight);   
      var rectWidth:Number 
          = unscaledWidth - this.borderMetrics.left - this.borderMetrics.right;
      var rectHeight:Number 
          = unscaledHeight - this.borderMetrics.top - this.borderMetrics.bottom; 

      readElementCssStyles();

      var topRadius:Number = Math.max(topCornerRadius-2, 0);
      var bottomRadius:Number = Math.max(bottomCornerRadius-2, 0);

      GraphicsUtil.drawRoundRectComplex(this.graphics, 
                                        this.borderMetrics.left, 
                                        this.borderMetrics.top, 
                                        rectWidth, 
                                        rectHeight, 
                                        topRadius, 
                                        topRadius, 
                                        bottomRadius, 
                                        bottomRadius);
    }

  }
}
然后,在MXML应用程序中,必须为VBox定义CSS类,如下所示:

  <mx:Style>
    .roundedBorder
    {
      border-style:solid;
      border-thickness: 1;
      border-skin: ClassReference("your.package.RoundedBorder");
      corner-radius: 5;
    }   
  </mx:Style>

.圆边
{
边框样式:实心;
边界厚度:1;
边框皮肤:类引用(“your.package.RoundedBorder”);
角半径:5;
}   
我已经从一个更复杂的类中删除了这段代码。希望我没有忘记任何东西,它将工作张贴