if(embedStylesPrinted != true) {document.write('');}var embedStylesPrinted = true;var content = '
Draw Dashed Lines Horizontal and Vertical [Flex/AS3]
actionscript3
package com.dlw.common.graphics {
 
import flash.geom.Point;
 
public class DashedLine {
 
public var dashLen:int;
public var spaceLen:int;
public var lineThickness:int;
public var lineColor:uint;
 
public function DashedLine(dashLen:int=5, spaceLen:int=5, lineThickness:int=1, lineColor:uint=0x000000) {
this.dashLen = dashLen;
this.spaceLen = spaceLen;
this.lineThickness = lineThickness;
this.lineColor = lineColor;
}
 
public function drawDashedLine(target:*, startPoint:Point, endPoint:Point):void {
var complete:Boolean = false;
var dLen:int = this.dashLen;
var sLen:int = this.spaceLen;
var tempVal:int = 0;
 
//ONE WAY DRAWING!!
if (startPoint.y == endPoint.y) { //drawing on the same y axis, next point will be x-based
if (startPoint.x > endPoint.x) { //always draw from the smaller val to the larger (flip vals)
tempVal = startPoint.x;
startPoint.x = endPoint.x;
endPoint.x = tempVal;
}
}else{ //drawing on same x axis, next point will be y-based
if (startPoint.y > endPoint.y) { //always draw from the smaller val to the larger (flip vals)
tempVal = startPoint.y;
startPoint.y = endPoint.y;
endPoint.y = tempVal;
}
}
//============
 
 
target.graphics.lineStyle(this.lineThickness, this.lineColor, 1);
target.graphics.moveTo(startPoint.x, startPoint.y); //move to the start point
 
while (!complete) {
//check to see if the next dash draw will exceed the distance
//and if so, shrink the dashlen
if (startPoint.y == endPoint.y) {
if (startPoint.x + dLen >= endPoint.x) {
dLen -= ((startPoint.x + dLen) - endPoint.x);
complete = true;
}
 
target.graphics.lineTo(startPoint.x + dLen, startPoint.y);
startPoint.x += dLen;
 
 
if (startPoint.x + sLen >= endPoint.x) {
sLen -= ((startPoint.x + sLen) - endPoint.x);
 
}
 
target.graphics.moveTo(startPoint.x + sLen, startPoint.y);
startPoint.x += sLen;
 
}else{
if (startPoint.y + dLen >= endPoint.y) {
dLen -= ((startPoint.y + dLen) - endPoint.y);
complete = true;
}
 
target.graphics.lineTo(startPoint.x, startPoint.y + dLen);
startPoint.y += dLen;
 
 
if (startPoint.y + sLen >= endPoint.y) {
sLen -= ((startPoint.y + sLen) - endPoint.y);
 
}
 
target.graphics.moveTo(startPoint.x, startPoint.y + sLen);
startPoint.y += sLen;
}
}
}
}
}
';document.write(content);