//////////////////////////////////////////////////////////////////////////////// // // 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.graphics { import flash.display.CapsStyle; import flash.display.Graphics; import flash.display.GraphicsSolidFill; import flash.display.GraphicsStroke; import flash.display.JointStyle; import flash.events.EventDispatcher; import flash.geom.Point; import flash.geom.Rectangle; import mx.events.PropertyChangeEvent; /** * The SolidColorStroke class defines the properties for a line. * * You can define a SolidColorStroke object in MXML, but you must attach that SolidColorStroke to * another object for it to appear in your application. The following example * defines two SolidColorStroke objects and then uses them in the horizontalAxisRenderer * of a LineChart control: * *
* ... * <mx:SolidColorStroke id="ticks" color="0xFF0000" weight="1"/> * <mx:SolidColorStroke id="mticks" color="0x0000FF" weight="1"/> * * <mx:LineChart id="mychart" dataProvider="{ndxa}"> * <mx:horizontalAxisRenderer> * <mx:AxisRenderer placement="bottom" canDropLabels="true"> * <mx:tickStroke>{ticks}</mx:tickStroke> * <mx:minorTickStroke>{mticks}</mx:minorTickStroke> * </mx:AxisRenderer> * </mx:horizontalAxisRenderer> * </LineChart> * ... ** * @mxml * *
The <mx:SolidColorStroke>
tag inherits all the tag attributes
* of its superclass, and adds the following tag attributes:
* <mx:SolidColorStroke * Properties * alpha="1.0" * caps="round|none|square" * color="0x000000" * joints="round|bevel|miter" * miterLimit="3" * pixelHinting="false|true" * scaleMode="normal|none|horizontal|vertical" * weight="1 (in most cases)" * /> ** * @see flash.display.Graphics * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public class SolidColorStroke extends EventDispatcher implements IStroke { include "../core/Version.as"; //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- /** * Constructor. * * @param color Specifies the line color. * The default value is 0x000000 (black). * * @param weight Specifies the line weight, in pixels. * The default value is 1. * * @param alpha Specifies the alpha value in the range 0.0 to 1.0. * The default value is 1.0 (opaque). * * @param pixelHinting Specifies whether to hint strokes to full pixels. * This value affects both the position of anchors of a curve * and the line stroke size itself. * The default value is false. * * @param scaleMode A value from the LineScaleMode class * that specifies which scale mode to use. * Valid values are
LineScaleMode.HORIZONTAL
,
* LineScaleMode.NONE
, LineScaleMode.NORMAL
,
* and LineScaleMode.VERTICAL
.
* This parameter is optional,
* with a default value of LineScaleMode.NORMAL
.
*
* @param caps Specifies the type of caps at the end of lines.
* Valid values are CapsStyle.ROUND
, CapsStyle.SQUARE
,
* and CapsStyle.NONE
.
* The default value is CapsStyle.ROUND
.
*
* @param joints Specifies the type of joint appearance used at angles.
* Valid values are JointStyle.ROUND
, JointStyle.MITER
,
* and JointStyle.BEVEL
.
* The default value is JointStyle.ROUND
.
*
* @param miterLimit Indicates the limit at which a miter is cut off.
* Valid values range from 1 to 255.
* The default value is 3.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function SolidColorStroke(color:uint = 0x000000,
weight:Number = 1,
alpha:Number = 1.0,
pixelHinting:Boolean = false,
scaleMode:String = "normal",
caps:String = "round",
joints:String = "round",
miterLimit:Number = 3)
{
super();
this.color = color;
this._weight = weight;
this.alpha = alpha;
this.pixelHinting = pixelHinting;
this.scaleMode = scaleMode;
this.caps = caps;
this.joints = joints;
this.miterLimit = miterLimit;
}
//--------------------------------------------------------------------------
//
// Properties
//
//--------------------------------------------------------------------------
//----------------------------------
// alpha
//----------------------------------
private var _alpha:Number = 0.0;
[Bindable("propertyChange")]
[Inspectable(category="General")]
/**
* The transparency of a line.
* Possible values are 0.0 (invisible) through 1.0 (opaque).
*
* @default 1.0.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function get alpha():Number
{
return _alpha;
}
/**
* @private
*/
public function set alpha(value:Number):void
{
var oldValue:Number = _alpha;
if (value != oldValue)
{
_alpha = value;
dispatchStrokeChangedEvent("alpha", oldValue, value);
}
}
//----------------------------------
// caps
//----------------------------------
private var _caps:String = CapsStyle.ROUND;
[Bindable("propertyChange")]
[Inspectable(category="General", enumeration="round,square,none", defaultValue="round")]
/**
* Specifies the type of caps at the end of lines.
* Valid values are: CapsStyle.ROUND
, CapsStyle.SQUARE
,
* and CapsStyle.NONE
.
*
* @default CapsStyle.ROUND
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function get caps():String
{
return _caps;
}
public function set caps(value:String):void
{
var oldValue:String = _caps;
if (value != oldValue)
{
_caps = value;
dispatchStrokeChangedEvent("caps", oldValue, value);
}
}
//----------------------------------
// color
//----------------------------------
private var _color:uint = 0x000000;
[Bindable("propertyChange")]
[Inspectable(category="General", format="Color")]
/**
* The line color.
*
* @default 0x000000 (black).
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function get color():uint
{
return _color;
}
public function set color(value:uint):void
{
var oldValue:uint = _color;
if (value != oldValue)
{
_color = value;
dispatchStrokeChangedEvent("color", oldValue, value);
}
}
//----------------------------------
// joints
//----------------------------------
private var _joints:String = JointStyle.ROUND;
[Bindable("propertyChange")]
[Inspectable(category="General", enumeration="round,bevel,miter", defaultValue="round")]
/**
* Specifies the type of joint appearance used at angles.
* Valid values are JointStyle.ROUND
, JointStyle.MITER
,
* and JointStyle.BEVEL
.
*
* @default JointStyle.ROUND
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function get joints():String
{
return _joints;
}
public function set joints(value:String):void
{
var oldValue:String = _joints;
if (value != oldValue)
{
_joints = value;
dispatchStrokeChangedEvent("joints", oldValue, value);
}
}
//----------------------------------
// miterLimit
//----------------------------------
private var _miterLimit:Number = 3;
[Bindable("propertyChange")]
[Inspectable(category="General", minValue="1.0", maxValue="255.0")]
/**
* Indicates the limit at which a miter is cut off.
* Valid values range from 1 to 255.
*
* @default 3
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function get miterLimit():Number
{
return _miterLimit;
}
public function set miterLimit(value:Number):void
{
var oldValue:Number = _miterLimit;
if (value != oldValue)
{
_miterLimit = value;
dispatchStrokeChangedEvent("miterLimit", oldValue, value);
}
}
//----------------------------------
// pixelHinting
//----------------------------------
private var _pixelHinting:Boolean = false;
[Bindable("propertyChange")]
[Inspectable(category="General")]
/**
* Specifies whether to hint strokes to full pixels.
* This value affects both the position of anchors of a curve
* and the line stroke size itself.
*
* @default false
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public function get pixelHinting():Boolean
{
return _pixelHinting;
}
public function set pixelHinting(value:Boolean):void
{
var oldValue:Boolean = _pixelHinting;
if (value != oldValue)
{
_pixelHinting = value;
dispatchStrokeChangedEvent("pixelHinting", oldValue, value);
}
}
//----------------------------------
// scaleMode
//----------------------------------
private var _scaleMode:String = "normal";
[Bindable("propertyChange")]
[Inspectable(category="General", enumeration="normal,vertical,horizontal,none", defaultValue="normal")]
/**
* A value from the LineScaleMode class
* that specifies which scale mode to use.
* Value valids are:
*
* LineScaleMode.NORMAL
* Always scale the line thickness when the object is scaled (the default).
* LineScaleMode.NONE
* Never scale the line thickness.
* LineScaleMode.VERTICAL
* Do not scale the line thickness if the object is scaled vertically
* only.
* LineScaleMode.HORIZONTAL
* Do not scale the line thickness if the object is scaled horizontally
* only.
*