一
13
最近想做一个台球游戏,需要用到一个虚线,就稍微研究了下。
写的还有点问题,大概就这样,gap是虚线段和空白的长短,本来想可以控制虚线段和空白段个子的长短,为了简单直接就gap了,没有分开传参。
1 2 3 4 5 6 7 | var s:Sprite = new Sprite(); addChild(s); dotted = new DottedLine(); dotted.lineStyle(s, 2, 0xff8888, 5, 0.8); dotted.moveTo(50, 50); dotted.lineTo(100, 180); dotted.lineTo(400, 380); |
虚线类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | package { import flash.display.Sprite; /** * ... * @author ZHY * @example DottedLine * @QQ&Email:65270458@qq.com */ public class DottedLine extends Sprite { private var fromX:Number; private var fromY:Number; private var toX:Number; private var toY:Number; private var dottedThickness:Number; private var dottedColor:uint; private var dottedSpace:Number; private var dottedAlpha:Number; private var container:Sprite; public function lineStyle(con:Sprite, thickness:Number = 1, color:uint = 0, gap:int = 5, alpha:Number = 1) :void { container = con; dottedThickness = thickness; dottedColor = color; dottedSpace = gap; dottedAlpha = alpha; } public function moveTo(x:Number, y:Number):void { fromX = x; fromY = y; } public function lineTo(x:Number, y:Number):void { toX = x; toY = y; prepare(); } public function prepare():void { container.graphics.moveTo(fromX, fromY); container.graphics.lineStyle(dottedThickness, dottedColor, dottedAlpha); drawDottedLine(); } public function drawDottedLine():void { var angle:Number = Math.atan2(toY - fromY, toX - fromX); var xGap:Number = dottedSpace * Math.cos(angle); var yGap:Number = dottedSpace * Math.sin(angle); while( (( xGap >= 0 && fromX <= toX ) || ( xGap < 0 && fromX > toX) )) { container.graphics.moveTo(fromX, fromY); container.graphics.lineTo(fromX + xGap, fromY + yGap); fromX = fromX + 2 * xGap; fromY = fromY + 2 * yGap; } } public function clear():void { container.graphics.clear(); } } } |
Down this DottedLine.as
Subscribe To Our Feed
enjoy this posts? subscribe to our feed please..





不是还要拐弯了吗?
[回复]