You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by al...@apache.org on 2018/05/14 06:01:45 UTC
[royale-asjs] branch feature/MXRoyale updated: ProgrammaticSkin.as
Added
This is an automated email from the ASF dual-hosted git repository.
alinakazi pushed a commit to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/feature/MXRoyale by this push:
new 93c3710 ProgrammaticSkin.as Added
93c3710 is described below
commit 93c371067e6a131479d8e8acb1b1b1c69f645f03
Author: alinakazi <AL...@GMAIL.COM>
AuthorDate: Sun May 13 23:01:42 2018 -0700
ProgrammaticSkin.as Added
---
.../src/main/royale/mx/skins/ProgrammaticSkin.as | 941 +++++++++++++++++++++
1 file changed, 941 insertions(+)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/skins/ProgrammaticSkin.as b/frameworks/projects/MXRoyale/src/main/royale/mx/skins/ProgrammaticSkin.as
new file mode 100644
index 0000000..8d7af63
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/skins/ProgrammaticSkin.as
@@ -0,0 +1,941 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.skins
+{
+
+/* import flash.display.Graphics;
+import flash.display.Shape;
+import flash.geom.Matrix;
+import flash.utils.getDefinitionByName; */
+
+/* import mx.core.FlexShape;
+import mx.core.IFlexModule;
+import mx.core.IFlexModuleFactory;
+import mx.core.IInvalidating;
+import mx.core.IFlexDisplayObject;
+import mx.core.IProgrammaticSkin;
+import mx.core.UIComponentGlobals;
+import mx.managers.ILayoutManagerClient;
+import mx.styles.ISimpleStyleClient;
+import mx.styles.IStyleClient;
+import mx.styles.IStyleManager2;
+import mx.styles.StyleManager;
+import mx.utils.GraphicsUtil;
+import mx.utils.NameUtil; */
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+/**
+ * This class is the base class for skin elements
+ * which draw themselves programmatically.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+public class ProgrammaticSkin
+{
+ /* extends FlexShape
+ implements IFlexDisplayObject, IInvalidating,
+ ILayoutManagerClient, ISimpleStyleClient, IProgrammaticSkin */
+/* include "../core/Version.as";
+ */
+ //--------------------------------------------------------------------------
+ //
+ // Class variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * Set by horizontalGradientMatrix() or verticalGradientMatrix().
+ */
+ //private static var tempMatrix:Matrix = new Matrix();
+
+ /**
+ * @private
+ * Soft link to UIComponent. Cache the class for performance.
+ */
+ //private static var uiComponentClass:Class;
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ public function ProgrammaticSkin()
+ {
+ /* super();
+
+ // If nobody explicitly sets a size for this object,
+ // then set its width and height to be its measured size.
+ _width = measuredWidth;
+ _height = measuredHeight; */
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ //private var invalidateDisplayListFlag:Boolean = false;
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // height
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the height property.
+ */
+ //private var _height:Number;
+
+ /**
+ * @private
+ */
+ /* override public function get height():Number
+ {
+ return _height;
+ }
+ */
+ /**
+ * @private
+ */
+ /* override public function set height(value:Number):void
+ {
+ _height = value;
+
+ invalidateDisplayList();
+ } */
+
+ //----------------------------------
+ // width
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the width property.
+ */
+ //private var _width:Number;
+
+ /**
+ * @private
+ */
+ /* override public function get width():Number
+ {
+ return _width;
+ } */
+
+ /**
+ * @private
+ */
+ /* override public function set width(value:Number):void
+ {
+ _width = value;
+
+ invalidateDisplayList();
+ } */
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties: IFlexDisplayObject
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // measuredHeight
+ //----------------------------------
+
+ /**
+ * The measured height of this object.
+ * This should be overridden by subclasses to return the preferred height for
+ * the skin.
+ *
+ * @return The measured height of the object, in pixels.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function get measuredHeight():Number
+ {
+ return 0;
+ } */
+
+ //----------------------------------
+ // measuredWidth
+ //----------------------------------
+
+ /**
+ * The measured width of this object.
+ * This should be overridden by subclasses to return the preferred width for
+ * the skin.
+ *
+ * @return The measured width of the object, in pixels.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function get measuredWidth():Number
+ {
+ return 0;
+ } */
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties: ILayoutManagerClient
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // initialized
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the initialized property.
+ */
+ //private var _initialized:Boolean = false;
+
+ /**
+ * @copy mx.core.UIComponent#initialized
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function get initialized():Boolean
+ {
+ return _initialized;
+ } */
+
+ /**
+ * @private
+ */
+ /* public function set initialized(value:Boolean):void
+ {
+ _initialized = value;
+ } */
+
+ //----------------------------------
+ // nestLevel
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the nestLevel property.
+ */
+ //private var _nestLevel:int = 0;
+
+ /**
+ * @copy mx.core.UIComponent#nestLevel
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function get nestLevel():int
+ {
+ return _nestLevel;
+ } */
+
+ /**
+ * @private
+ */
+ /* public function set nestLevel(value:int):void
+ {
+ _nestLevel = value;
+
+ // After nestLevel is initialized, add this object to the
+ // LayoutManager's queue, so that it is drawn at least once
+ invalidateDisplayList();
+ } */
+
+ //----------------------------------
+ // processedDescriptors
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the processedDescriptors property.
+ */
+ //private var _processedDescriptors:Boolean = false;
+
+ /**
+ * @copy mx.core.UIComponent#processedDescriptors
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function get processedDescriptors():Boolean
+ {
+ return _processedDescriptors;
+ } */
+
+ /**
+ * @private
+ */
+ /* public function set processedDescriptors(value:Boolean):void
+ {
+ _processedDescriptors = value;
+ } */
+
+ //----------------------------------
+ // updateCompletePendingFlag
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the updateCompletePendingFlag property.
+ */
+ //private var _updateCompletePendingFlag:Boolean = true;
+
+ /**
+ * A flag that determines if an object has been through all three phases
+ * of layout validation (provided that any were required).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function get updateCompletePendingFlag():Boolean
+ {
+ return _updateCompletePendingFlag;
+ } */
+
+ /**
+ * @private
+ */
+ /* public function set updateCompletePendingFlag(value:Boolean):void
+ {
+ _updateCompletePendingFlag = value;
+ } */
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties: ISimpleStyleClient
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // styleName
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the styleName property.
+ * For skins, it is always a UIComponent.
+ */
+ private var _styleName:Object; //IStyleClient;
+
+ /**
+ * A parent component used to obtain style values. This is typically set to the
+ * component that created this skin.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ public function get styleName():Object
+ {
+ return _styleName;
+ }
+
+ /**
+ * @private
+ */
+ public function set styleName(value:Object):void
+ {
+ if (_styleName != value)
+ {
+ _styleName = value; //as IStyleClient;
+ invalidateDisplayList();
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods: IFlexDisplayObject
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Moves this object to the specified x and y coordinates.
+ *
+ * @param x The horizontal position, in pixels.
+ *
+ * @param y The vertical position, in pixels.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function move(x:Number, y:Number):void
+ {
+ this.x = x;
+ this.y = y;
+ } */
+
+ /**
+ * Sets the height and width of this object.
+ *
+ * @param newWidth The width, in pixels, of this object.
+ *
+ * @param newHeight The height, in pixels, of this object.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function setActualSize(newWidth:Number, newHeight:Number):void
+ {
+ var changed:Boolean = false;
+
+ if (_width != newWidth)
+ {
+ _width = newWidth;
+ changed = true;
+ }
+
+ if (_height != newHeight)
+ {
+ _height = newHeight;
+ changed = true;
+ }
+
+ if (changed)
+ invalidateDisplayList();
+ } */
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods: ILayoutManagerClient
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * This function is an empty stub so that ProgrammaticSkin
+ * can implement the ILayoutManagerClient interface.
+ * Skins do not call <code>LayoutManager.invalidateProperties()</code>,
+ * which would normally trigger a call to this method.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function validateProperties():void
+ {
+ } */
+
+ /**
+ * This function is an empty stub so that ProgrammaticSkin
+ * can implement the ILayoutManagerClient interface.
+ * Skins do not call <code>LayoutManager.invalidateSize()</code>,
+ * which would normally trigger a call to this method.
+ *
+ * @param recursive Determines whether children of this skin are validated.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function validateSize(recursive:Boolean = false):void
+ {
+ } */
+
+ /**
+ * This function is called by the LayoutManager
+ * when it's time for this control to draw itself.
+ * The actual drawing happens in the <code>updateDisplayList</code>
+ * function, which is called by this function.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function validateDisplayList():void
+ {
+ invalidateDisplayListFlag = false;
+
+ updateDisplayList(width, height);
+ } */
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods: ISimpleStyleClient
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Whenever any style changes, redraw this skin.
+ * Subclasses can override this method
+ * and perform a more specific test before calling invalidateDisplayList().
+ *
+ * @param styleProp The name of the style property that changed, or null
+ * if all styles have changed.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function styleChanged(styleProp:String):void
+ {
+ invalidateDisplayList();
+ } */
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods: Other
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @copy mx.core.UIComponent#invalidateDisplayList()
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ public function invalidateDisplayList():void
+ {
+ // Don't try to add the object to the display list queue until we've
+ // been assigned a nestLevel, or we'll get added at the wrong place in
+ // the LayoutManager's priority queue.
+ /* if (!invalidateDisplayListFlag && nestLevel > 0)
+ {
+ invalidateDisplayListFlag = true;
+ UIComponentGlobals.layoutManager.invalidateDisplayList(this);
+ } */
+ }
+
+ /**
+ * Programmatically draws the graphics for this skin.
+ *
+ * <p>Subclasses should override this method and include calls
+ * to methods such as <code>graphics.moveTo()</code> and
+ * <code>graphics.lineTo()</code>.</p>
+ *
+ * <p>This occurs before any scaling from sources
+ * such as user code or zoom effects.
+ * The component is unaware of the scaling that takes place later.</p>
+ *
+ * @param unscaledWidth
+ * The width, in pixels, of this object before any scaling.
+ *
+ * @param unscaledHeight
+ * The height, in pixels, of this object before any scaling.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ protected function updateDisplayList(unscaledWidth:Number,
+ unscaledHeight:Number):void
+ {
+ }
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function invalidateSize():void
+ {
+ } */
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function invalidateProperties():void
+ {
+ } */
+
+ /**
+ * Validate and update the properties and layout of this object
+ * and redraw it, if necessary.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* public function validateNow():void
+ {
+ // Since we don't have commit/measure/layout phases,
+ // all we need to do here is the draw phase
+ if (invalidateDisplayListFlag)
+ validateDisplayList();
+ } */
+
+ /**
+ * Returns the value of the specified style property.
+ *
+ * @param styleProp Name of the style property.
+ *
+ * @return The style value. This can be any type of object that style properties can be, such as
+ * int, Number, String, etc.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ public function getStyle(styleProp:String):*
+ {
+ return _styleName ? _styleName.getStyle(styleProp) : null;
+ }
+
+ /**
+ * @private
+ * Get the style manager for this skin. The style manager is
+ * based on the UIComponent that owns the skin. If this skin does not
+ * have a styleName then use the top-level style manager.
+ */
+ /* protected function get styleManager():IStyleManager2
+ {
+ if (uiComponentClass == null)
+ uiComponentClass = Class(getDefinitionByName("mx.core.UIComponent"));
+
+ if (styleName is uiComponentClass)
+ return styleName.styleManager;
+ else
+ return StyleManager.getStyleManager(null);
+ } */
+
+ /**
+ * Utility function to create a horizontal gradient matrix.
+ *
+ * @param x The left edge of the gradient.
+ *
+ * @param y The top edge of the gradient.
+ *
+ * @param width The width of the gradient.
+ *
+ * @param height The height of the gradient.
+ *
+ * @return The horizontal gradient matrix. This is a temporary
+ * object that should only be used for a single subsequent call
+ * to the <code>drawRoundRect()</code> method.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* protected function horizontalGradientMatrix(x:Number, y:Number,
+ width:Number,
+ height:Number):Matrix
+ {
+ return rotatedGradientMatrix(x, y, width, height, 0);
+ } */
+
+ /**
+ * Utility function to create a vertical gradient matrix.
+ *
+ * @param x The left edge of the gradient.
+ *
+ * @param y The top edge of the gradient.
+ *
+ * @param width The width of the gradient.
+ *
+ * @param height The height of the gradient.
+ *
+ * @return The horizontal gradient matrix. This is a temporary
+ * object that should only be used for a single subsequent call
+ * to the <code>drawRoundRect()</code> method.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* protected function verticalGradientMatrix(x:Number, y:Number,
+ width:Number,
+ height:Number):Matrix
+ {
+ return rotatedGradientMatrix(x, y, width, height, 90);
+ } */
+
+ /**
+ * Utility function to create a rotated gradient matrix.
+ *
+ * @param x The left edge of the gradient.
+ *
+ * @param y The top edge of the gradient.
+ *
+ * @param width The width of the gradient.
+ *
+ * @param height The height of the gradient.
+ *
+ * @param rotation The amount to rotate, in degrees.
+ *
+ * @return The horizontal gradient matrix. This is a temporary
+ * object that should only be used for a single subsequent call
+ * to the <code>drawRoundRect()</code> method.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ /* protected function rotatedGradientMatrix(x:Number, y:Number,
+ width:Number,
+ height:Number,
+ rotation:Number):Matrix
+ {
+ tempMatrix.createGradientBox(width, height,
+ rotation * Math.PI / 180, x, y);
+ return tempMatrix;
+ } */
+
+ /**
+ * Programatically draws a rectangle into this skin's Graphics object.
+ *
+ * <p>The rectangle can have rounded corners.
+ * Its edges are stroked with the current line style
+ * of the Graphics object.
+ * It can have a solid color fill, a gradient fill, or no fill.
+ * A solid fill can have an alpha transparency.
+ * A gradient fill can be linear or radial. You can specify
+ * up to 15 colors and alpha values at specified points along
+ * the gradient, and you can specify a rotation angle
+ * or transformation matrix for the gradient.
+ * Finally, the rectangle can have a rounded rectangular hole
+ * carved out of it.</p>
+ *
+ * <p>This versatile rectangle-drawing routine is used by many skins.
+ * It calls the <code>drawRect()</code> or
+ * <code>drawRoundRect()</code>
+ * methods (in the flash.display.Graphics class) to draw into this
+ * skin's Graphics object.</p>
+ *
+ * @param x Horizontal position of upper-left corner
+ * of rectangle within this skin.
+ *
+ * @param y Vertical position of upper-left corner
+ * of rectangle within this skin.
+ *
+ * @param width Width of rectangle, in pixels.
+ *
+ * @param height Height of rectangle, in pixels.
+ *
+ * @param cornerRadius Corner radius/radii of rectangle.
+ * Can be <code>null</code>, a Number, or an Object.
+ * If it is <code>null</code>, it specifies that the corners should be square
+ * rather than rounded.
+ * If it is a Number, it specifies the same radius, in pixels,
+ * for all four corners.
+ * If it is an Object, it should have properties named
+ * <code>tl</code>, <code>tr</code>, <code>bl</code>, and
+ * <code>br</code>, whose values are Numbers specifying
+ * the radius, in pixels, for the top left, top right,
+ * bottom left, and bottom right corners.
+ * For example, you can pass a plain Object such as
+ * <code>{ tl: 5, tr: 5, bl: 0, br: 0 }</code>.
+ * The default value is null (square corners).
+ *
+ * @param color The RGB color(s) for the fill.
+ * Can be <code>null</code>, a uint, or an Array.
+ * If it is <code>null</code>, the rectangle not filled.
+ * If it is a uint, it specifies an RGB fill color.
+ * For example, pass <code>0xFF0000</code> to fill with red.
+ * If it is an Array, it should contain uints
+ * specifying the gradient colors.
+ * For example, pass <code>[ 0xFF0000, 0xFFFF00, 0x0000FF ]</code>
+ * to fill with a red-to-yellow-to-blue gradient.
+ * You can specify up to 15 colors in the gradient.
+ * The default value is null (no fill).
+ *
+ * @param alpha Alpha value(s) for the fill.
+ * Can be null, a Number, or an Array.
+ * This argument is ignored if <code>color</code> is null.
+ * If <code>color</code> is a uint specifying an RGB fill color,
+ * then <code>alpha</code> should be a Number specifying
+ * the transparency of the fill, where 0.0 is completely transparent
+ * and 1.0 is completely opaque.
+ * You can also pass null instead of 1.0 in this case
+ * to specify complete opaqueness.
+ * If <code>color</code> is an Array specifying gradient colors,
+ * then <code>alpha</code> should be an Array of Numbers, of the
+ * same length, that specifies the corresponding alpha values
+ * for the gradient.
+ * In this case, the default value is <code>null</code> (completely opaque).
+ *
+ * @param gradientMatrix Matrix object used for the gradient fill.
+ * The utility methods <code>horizontalGradientMatrix()</code>,
+ * <code>verticalGradientMatrix()</code>, and
+ * <code>rotatedGradientMatrix()</code> can be used to create the value for
+ * this parameter.
+ *
+ * @param gradientType Type of gradient fill. The possible values are
+ * <code>GradientType.LINEAR</code> or <code>GradientType.RADIAL</code>.
+ * (The GradientType class is in the package flash.display.)
+ *
+ * @param gradientRatios (optional default [0,255])
+ * Specifies the distribution of colors. The number of entries must match
+ * the number of colors defined in the <code>color</code> parameter.
+ * Each value defines the percentage of the width where the color is
+ * sampled at 100%. The value 0 represents the left-hand position in
+ * the gradient box, and 255 represents the right-hand position in the
+ * gradient box.
+ *
+ * @param hole (optional) A rounded rectangular hole
+ * that should be carved out of the middle
+ * of the otherwise solid rounded rectangle
+ * { x: #, y: #, w: #, h: #, r: # or { br: #, bl: #, tl: #, tr: # } }
+ *
+ * @see flash.display.Graphics#beginGradientFill()
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ // protected function drawRoundRect(
+ // x:Number, y:Number, width:Number, height:Number,
+ // cornerRadius:Object = null,
+ // color:Object = null,
+ // alpha:Object = null,
+ // gradientMatrix:Matrix = null,
+ // gradientType:String = "linear",
+ // gradientRatios:Array /* of Number */ = null,
+ // hole:Object = null):void
+ // {
+ // var g:Graphics = graphics;
+
+ // //Quick exit if weight or height is zero.
+ // //This happens when scaling a component to a very small value,
+ // //which then gets rounded to 0.
+ // if (width == 0 || height == 0)
+ // return;
+
+ // //If color is an object then allow for complex fills.
+ // if (color !== null)
+ // {
+ // if (color is uint)
+ // {
+ // g.beginFill(uint(color), Number(alpha));
+ // }
+ // else if (color is Array)
+ // {
+ // var alphas:Array = alpha is Array ?
+ // alpha as Array :
+ // [ alpha, alpha ];
+
+ // if (!gradientRatios)
+ // gradientRatios = [ 0, 0xFF ];
+
+ // g.beginGradientFill(gradientType,
+ // color as Array, alphas,
+ // gradientRatios, gradientMatrix);
+ // }
+ // }
+
+ // var ellipseSize:Number;
+
+ // //Stroke the rectangle.
+ // if (!cornerRadius)
+ // {
+ // g.drawRect(x, y, width, height);
+ // }
+ // else if (cornerRadius is Number)
+ // {
+ // ellipseSize = Number(cornerRadius) * 2;
+ // g.drawRoundRect(x, y, width, height,
+ // ellipseSize, ellipseSize);
+ // }
+ // else
+ // {
+ // GraphicsUtil.drawRoundRectComplex(g,
+ // x, y, width, height,
+ // cornerRadius.tl, cornerRadius.tr,
+ // cornerRadius.bl, cornerRadius.br);
+ // }
+
+ // //Carve a rectangular hole out of the middle of the rounded rect.
+ // if (hole)
+ // {
+ // var holeR:Object = hole.r;
+ // if (holeR is Number)
+ // {
+ // ellipseSize = Number(holeR) * 2;
+ // g.drawRoundRect(hole.x, hole.y, hole.w, hole.h,
+ // ellipseSize, ellipseSize);
+ // }
+ // else
+ // {
+ // GraphicsUtil.drawRoundRectComplex(g,
+ // hole.x, hole.y, hole.w, hole.h,
+ // holeR.tl, holeR.tr, holeR.bl, holeR.br);
+ // }
+ // }
+
+ // if (color !== null)
+ // g.endFill();
+ // }
+}
+
+}
--
To stop receiving notification emails like this one, please contact
alinakazi@apache.org.