1  /**
     2   * com.sekati.draw.Line
     3   * @version 1.0.3
     4   * @author jason m horwitz | sekati.com
     5   * Copyright (C) 2007  jason m horwitz, Sekat LLC. All Rights Reserved.
     6   * Released under the MIT License: http://www.opensource.org/licenses/mit-license.php
     7   */
     8  
     9  import com.sekati.geom.Point;
    10  
    11  /**
    12   * Line Object
    13   */
    14  class com.sekati.draw.Line {
    15  
    16  	private var _mc:MovieClip;
    17  	public var _p1:Point;
    18  	public var _p2:Point;
    19  	public var _sw:Number;
    20  	public var _sc:Number;
    21  	public var _sa:Number;
    22  
    23  	/**
    24  	 * Line Constructor
    25  	 * @param mc (MovieClip)
    26  	 * @param p1 (Point) point 1
    27  	 * @param p2 (Point) point 2
    28  	 * @param strokeWeight (Number) line width [default: 1]
    29  	 * @param strokeColor (Number) line color [default: 0x000000]
    30  	 * @param strokeAlpha (Number) line alpha transparency [default: 100]
    31  	 * @return Void
    32  	 */
    33  	public function Line(mc:MovieClip, p1:Point, p2:Point, strokeWeight:Number, strokeColor:Number, strokeAlpha:Number) {
    34  		_mc = mc;
    35  		_sw = (!strokeWeight) ? undefined : strokeWeight;
    36  		_sc = (isNaN( strokeColor )) ? 0x000000 : strokeColor;
    37  		_sa = (isNaN( strokeAlpha )) ? 100 : strokeAlpha;
    38  		_p1 = p1;
    39  		_p2 = p2;
    40  		draw( );
    41  	}
    42  
    43  	/**
    44  	 * (Re)Draw line with current properties.
    45  	 * @return Void
    46  	 */
    47  	public function draw():Void {
    48  		_mc.clear( );
    49  		_mc.lineStyle( _sw, _sc, _sa, true, "none", "square", "miter", 1.414 );
    50  		_mc.moveTo( _p1.x, _p1.y );
    51  		_mc.lineTo( _p2.x, _p2.y );
    52  	}
    53  
    54  	public function get p1x():Number {
    55  		return _p1.x;	
    56  	}
    57  
    58  	public function set p1x(n:Number):Void {
    59  		_p1.x = n;
    60  		draw( );
    61  	}	
    62  
    63  	public function get p1y():Number {
    64  		return _p1.y;	
    65  	}
    66  
    67  	public function set p1y(n:Number):Void {
    68  		_p1.y = n;	
    69  		draw( );
    70  	}	
    71  
    72  	public function get p2x():Number {
    73  		return _p2.x;	
    74  	}
    75  
    76  	public function set p2x(n:Number):Void {
    77  		_p2.x = n;	
    78  		draw( );
    79  	}	
    80  
    81  	public function get p2y():Number {
    82  		return _p2.y;	
    83  	}
    84  
    85  	public function set p2y(n:Number):Void {
    86  		_p2.y = n;	
    87  		draw( );
    88  	}	
    89  }