[ActionScript 3.0] AS3 双A字模型

 

  1 package
  2 {
  3     import caurina.transitions.Tweener;
  4     
  5     import flash.display.Sprite;
  6     import flash.events.MouseEvent;
  7     import flash.geom.Point;
  8     import flash.text.TextField;
  9     import flash.text.TextFormat;
 10     import flash.text.TextFormatAlign;
 11     import flash.utils.setTimeout;
 12     
 13     /**
 14      * @author Frost.Yen
 15      * @E-mail 871979853@qq.com
 16      * @create 2015-8-27 下午4:48:05
 17      *
 18      */
 19     [SWF(width="1024",height="800",backgroundColor="0x000000")]
 20     public class Main extends Sprite
 21     {
 22         private var _overlapBtn:TextField;
 23         private var _separateBtn:TextField;
 24         private var _resetBtn:TextField;
 25         private var _overlapContainer:Sprite;
 26         private var _separateContainer:Sprite;
 27         private var _part1:Sprite;
 28         private var _part2:Sprite;
 29         private var _dotA:Sprite;
 30         private var _dotD:Sprite;
 31         private var _dotE:Sprite;
 32         private var _dotF:Sprite;
 33         private var _tA:TextField;
 34         private var _tB:TextField;
 35         private var _tC:TextField;
 36         private var _tD:TextField;
 37         private var _tE:TextField;
 38         private var _tF:TextField;
 39         private var _tG:TextField;
 40         private var _tA1:TextField;
 41         private var _tB1:TextField;
 42         private var _tC1:TextField;
 43         private var _tD1:TextField;
 44         private var _tE1:TextField;
 45         private var _tF1:TextField;
 46         private var _tG1:TextField;
 47         private var __tA1:TextField;
 48         private var __tC1:TextField;
 49         private var __tE1:TextField;
 50         private var _ratioABD:Number;//AB/AD比率
 51         private var _ratioDEF:Number;//DE/DF比率
 52         private var _tempB:Point;
 53         private var _tempG:Point;
 54         private var _dragDot:String="A";
 55         private var _tf:TextFormat = new TextFormat("Times New Roman",26,0xffffff,true);
 56         private var A:Point = new Point();
 57         private var B:Point = new Point();
 58         private var C:Point = new Point();
 59         private var D:Point = new Point();
 60         private var E:Point = new Point();
 61         private var F:Point = new Point();
 62         private var G:Point = new Point();
 63         private var AE:Sprite = new Sprite();
 64         private var BG:Sprite = new Sprite();
 65         private var AD:Sprite = new Sprite();
 66         private var DF:Sprite = new Sprite();
 67         private var AF:Sprite = new Sprite();
 68         private var BG_drag:Sprite = new Sprite();
 69         public function Main()
 70         {
 71             initViews();
 72             initEventListeners();
 73         }
 74         private function initViews():void
 75         {
 76             _overlapContainer = new Sprite();
 77             _separateContainer = new Sprite();
 78             _part1 = new Sprite();
 79             _part2 = new Sprite();
 80             _overlapBtn = getButton("overlap",this,50,100);
 81             _separateBtn = getButton("separate",this,50,160);
 82             _resetBtn = getButton("reset",this,50,220);
 83             _tA = getTextField("A",_overlapContainer);
 84             _tB = getTextField("B",_overlapContainer);
 85             _tC = getTextField("C",_overlapContainer);
 86             _tD = getTextField("D",_overlapContainer);
 87             _tE = getTextField("E",_overlapContainer);
 88             _tF = getTextField("F",_overlapContainer);
 89             _tG = getTextField("G",_overlapContainer);
 90             _tA1 = getTextField("A",_part1);
 91             _tB1 = getTextField("B",_part1);
 92             _tC1 = getTextField("C",_part1);
 93             _tD1 = getTextField("D",_part1);
 94             _tE1 = getTextField("E",_part1);
 95             _tF1 = getTextField("F",_part2);
 96             _tG1 = getTextField("G",_part2);
 97             __tA1 = getTextField("A",_part2);
 98             __tC1 = getTextField("C",_part2);
 99             __tE1 = getTextField("E",_part2);
100             _dotA = getDot(4,_overlapContainer,"A");
101             _dotD = getDot(4,_overlapContainer,"D");
102             _dotF = getDot(4,_overlapContainer,"F");
103             _dotE = getDot(4,_overlapContainer,"E");
104             _separateContainer.addChild(_part1);
105             _separateContainer.addChild(_part2);
106             _overlapContainer.addChildAt(BG_drag,0);
107             _overlapContainer.addChildAt(_dotA,0);
108             _overlapContainer.addChildAt(AE,0);
109             _overlapContainer.addChildAt(BG,0);
110             _overlapContainer.addChildAt(AD,0);
111             _overlapContainer.addChildAt(DF,0);
112             _overlapContainer.addChildAt(AF,0);
113             
114             this.addChild(_overlapContainer);
115             this.addChild(_separateContainer);
116             BG_drag.alpha = 0;
117         }
118         private function initEventListeners():void
119         {
120             _overlapBtn.addEventListener(MouseEvent.CLICK,onOverlap);
121             _separateBtn.addEventListener(MouseEvent.CLICK,onSeparate);
122             _resetBtn.addEventListener(MouseEvent.CLICK,onReset);
123             _dotE.addEventListener(MouseEvent.MOUSE_DOWN,onDotEDown);
124             _dotA.addEventListener(MouseEvent.MOUSE_DOWN,onDotDown);
125             _dotD.addEventListener(MouseEvent.MOUSE_DOWN,onDotDown);
126             _dotF.addEventListener(MouseEvent.MOUSE_DOWN,onDotDown);
127             BG_drag.addEventListener(MouseEvent.MOUSE_DOWN,onBGDown);
128             reset();
129         }
130         
131         private function onOverlap(e:MouseEvent):void
132         {
133             Tweener.removeAllTweens();
134             overlap(_part1,_part2);
135             setTimeout(hidOverlap,800);
136             function hidOverlap():void{
137                 if(_part1.x == _overlapContainer.x){
138                     _separateContainer.visible = false;
139                     _overlapContainer.visible = true;
140                 }
141             }
142         }
143         private function onSeparate(e:MouseEvent):void
144         {
145             Tweener.removeAllTweens();
146             _part1.visible = true;
147             _part2.visible = true;
148             _separateContainer.visible = true;
149             _overlapContainer.visible = false;
150             drawPart();
151             separate(_part1,_part2);
152         }
153         private function onReset(e:MouseEvent):void
154         {
155             _part1.x = _part2.x = _overlapContainer.x;
156             _part1.y = _part2.y = _overlapContainer.y;
157             _separateContainer.visible = true;
158             _overlapContainer.visible = false;
159             reset();
160         }
161         private function onDotDown(e:MouseEvent):void
162         {
163             stage.addEventListener(MouseEvent.MOUSE_UP,onDotUp);
164             stage.addEventListener(MouseEvent.MOUSE_MOVE,onDotMove);
165             e.currentTarget.startDrag();
166             _dragDot = e.currentTarget.name;
167         }
168         private function onDotMove(e:MouseEvent):void
169         {
170             drawAll();
171         }
172         private function onDotUp(e:MouseEvent):void
173         {
174             stopDrag();
175             stage.removeEventListener(MouseEvent.MOUSE_UP,onDotUp);
176             stage.removeEventListener(MouseEvent.MOUSE_MOVE,onDotMove);
177             drawAll();
178         }
179         private function onDotEDown(e:MouseEvent):void
180         {
181             stage.addEventListener(MouseEvent.MOUSE_UP,onDotEUp);
182             stage.addEventListener(MouseEvent.MOUSE_MOVE,onDotEMove);
183         }
184         private function onDotEMove(e:MouseEvent):void
185         {
186             MoveAE();
187         }
188         private function MoveAE():void
189         {
190             var k_DF:Number = (D.y-F.y)/(D.x-F.x);//DF的k即BG的k
191             var b_DF:Number = D.y - k_DF * D.x;//DF的b
192             var k_AE:Number = (A.y-mouseY)/(A.x-mouseX);
193             var b_AE:Number = mouseY - k_AE * mouseX;
194             if(D.x == F.x){
195                 E.x = D.x;
196                 E.y = mouseY;
197             }else{
198                 E.x = (b_AE - b_DF) / (k_DF - k_AE);
199                 E.y = k_AE * E.x + b_AE;
200             }
201             
202             if (!isBetween(E,D,F)) {
203                 if(Point.distance(D,E)<Point.distance(E,F)){
204                     E.x = D.x;
205                     E.y = D.y;
206                 }else{
207                     E.x = F.x;
208                     E.y = F.y;
209                 }
210             }
211             drawLine(A,E,AE);
212             _dotE.x = E.x;
213             _dotE.y = E.y;
214             setCoords();    
215         }
216         private function onDotEUp(e:MouseEvent):void
217         {
218             _ratioDEF = Point.distance(D,E) / Point.distance(D,F);
219             stage.removeEventListener(MouseEvent.MOUSE_UP,onDotEUp);
220             stage.removeEventListener(MouseEvent.MOUSE_MOVE,onDotEMove);
221         }
222         private function onBGDown(e:MouseEvent):void
223         {
224             stage.addEventListener(MouseEvent.MOUSE_UP,onBGUp);
225             stage.addEventListener(MouseEvent.MOUSE_MOVE,onBGMove);
226         }
227         private function onBGMove(e:MouseEvent):void
228         {
229             drawLineBG("BG");
230         }
231         private function onBGUp(e:MouseEvent):void
232         {
233             stage.removeEventListener(MouseEvent.MOUSE_UP,onBGUp);
234             stage.removeEventListener(MouseEvent.MOUSE_MOVE,onBGMove);
235         }
236         private function drawLine(startP:Point,endP:Point,sp:Sprite,thickness:Number = 2):void
237         {
238             sp.graphics.clear();
239             sp.graphics.lineStyle(thickness,0xffffff);
240             sp.graphics.moveTo(startP.x,startP.y);
241             sp.graphics.lineTo(endP.x,endP.y);
242         }
243         private function drawLineBG(dot:String):void
244         {
245             var k_AD:Number = (A.y-D.y)/(A.x-D.x);
246             var b_AD:Number = A.y - k_AD * A.x;
247             var k_AF:Number = (A.y-F.y)/(A.x-F.x);
248             var b_AF:Number = A.y - k_AF * A.x;
249             var k_DF:Number = (D.y-F.y)/(D.x-F.x);//DF的k即BG的k
250             var b_DF:Number = D.y - k_DF * D.x;//DF的b
251             var b_BG:Number;
252             
253             if(A.x == D.x||A.x==F.x||D.x==F.x||A.x == C.x){
254                 trace("无斜率");
255                 return;
256             }
257             if(A.y == k_DF*A.x+b_DF ){//判断三个点是否在同一直线 
258                 trace("三个顶点处于同一直线,不是三角形");
259                 return;
260             }
261             if (dot == "F") {//拖动F
262                 //B.x = (B.y-b_AD)/k_AD;
263                 B.x = _ratioABD*(D.x-A.x)+A.x;
264                 b_BG = B.y - k_DF * B.x;
265                 G.x = (b_BG - b_AF) / (k_AF - k_DF);
266                 G.y = k_DF * G.x + b_BG;
267                 
268                 drawLine(B,G,BG);
269                 drawLine(B,G,BG_drag,4);
270             } else if (dot == "D") {//拖动D
271                 //G.x = (G.y-b_AF)/k_AF;
272                 G.x = _ratioABD*(F.x-A.x)+A.x;
273                 b_BG = G.y - k_DF * G.x;
274                 B.x = (b_BG - b_AD) / (k_AD - k_DF);
275                 B.y = k_DF * B.x + b_BG;
276                 drawLine(B,G,BG);
277                 drawLine(B,G,BG_drag,4);
278             } else if (dot == "A") {
279                 B.y = _ratioABD*(D.y-A.y)+A.y;
280                 //B.x = (B.y-b_AD)/k_AD;
281                 B.x = _ratioABD*(D.x-A.x)+A.x;
282                 b_BG = B.y - k_DF * B.x;
283                 G.x = (b_BG - b_AF) / (k_AF - k_DF);
284                 G.y = k_DF * G.x + b_BG;
285                 drawLine(B,G,BG);
286                 drawLine(B,G,BG_drag,4);
287             } else {//拖动BG
288                 b_BG = mouseY - k_DF * mouseX;
289                 B.x = (b_BG - b_AD) / (k_AD - k_DF);
290                 B.y = k_DF * B.x + b_BG;
291                 G.x = (b_BG - b_AF) / (k_AF - k_DF);
292                 G.y = k_DF * G.x + b_BG;
293                 if (!isBetween(B,D,A)) {
294                     if(Point.distance(A,B)>Point.distance(D,B)){
295                         B.x = D.x;
296                         B.y = D.y;
297                         G.x = F.x;
298                         G.y = F.y;
299                     }else{
300                         B.x = _tempB.x;
301                         B.y = _tempB.y;
302                         G.x = _tempG.x;
303                         G.y = _tempG.y;
304                     }
305                 }
306                 drawLine(B,G,BG);
307                 drawLine(B,G,BG_drag,4);
308                 _ratioABD = Point.distance(A,B) / Point.distance(A,D);
309                 setCoords();
310             }
311             if(Point.distance(B,G)>2){
312                 _tempB = new Point(B.x,B.y);
313                 _tempG = new Point(G.x,G.y);
314             }
315             
316             E.y = _ratioDEF*(F.y-D.y)+D.y;
317             E.x = _ratioDEF*(F.x-D.x)+D.x;
318             _dotE.x = E.x;
319             _dotE.y = E.y;
320         }
321         
322         private function reset():void
323         {
324             _dotA.x = 625;
325             _dotA.y = 335;
326             _dotD.x = 523;
327             _dotD.y = 513;
328             _dotE.x = 598;
329             _dotE.y = 513;
330             _dotF.x = 690;
331             _dotF.y = 513;
332             _dragDot = "A";
333             setCoords();
334             _ratioABD = Point.distance(A,getB(428)) / Point.distance(A,D);
335             _ratioDEF = Point.distance(D,E) / Point.distance(D,F);
336             _separateContainer.visible = true;
337             _overlapContainer.visible = false;
338             drawAll();
339             drawPart();
340             separate(_part1,_part2);
341         }
342         private function drawAll():void{
343             drawLine(A,D,AD);
344             drawLine(D,F,DF);
345             drawLine(A,F,AF);
346             drawLineBG(_dragDot);
347             drawLine(A,E,AE);
348             setCoords();
349         }
350         private function setCoords():void
351         {
352             A.x = _dotA.x;
353             A.y = _dotA.y;
354             D.x = _dotD.x;
355             D.y = _dotD.y;
356             E.x = _dotE.x;
357             E.y = _dotE.y;
358             F.x = _dotF.x;
359             F.y = _dotF.y;
360             _tA.x = getPointByExtension(getMidpoint(D,F),A).x-_tA.width*0.5;
361             _tA.y = getPointByExtension(getMidpoint(D,F),A).y-_tA.height*0.5;;
362             _tB.x = getPointByExtension(G,B,25).x-_tA.width*0.5;
363             _tB.y = getPointByExtension(G,B,25).y-_tA.height*0.5;;
364             var extensionC:Point = getPointByExtension(getMidpoint(A,G),getC(),30);
365             getC().x > G.x ? _tC.x = extensionC.x + 5-_tA.width*0.5:_tC.x = extensionC.x - 5-_tA.width*0.5;;
366             getC().y > G.y ? _tC.y = extensionC.y + 5-_tA.height*0.5:_tC.y = extensionC.y - 5-_tA.height*0.5;;
367             _tD.x = getPointByExtension(getMidpoint(A,F),D).x-_tA.width*0.5;
368             _tD.y = getPointByExtension(getMidpoint(A,F),D).y-_tA.height*0.5;
369             _tE.x = getPointByExtension(A,E).x-_tA.width*0.5;
370             _tE.y = getPointByExtension(A,E).y-_tA.height*0.5;
371             _tF.x = getPointByExtension(getMidpoint(A,D),F).x-_tA.width*0.5;
372             _tF.y = getPointByExtension(getMidpoint(A,D),F).y-_tA.height*0.5;
373             _tG.x = getPointByExtension(B,G,25).x-_tA.width*0.5;
374             _tG.y = getPointByExtension(B,G,25).y-_tA.height*0.5;
375             
376         }
377         private function drawPart():void
378         {
379             _part1.graphics.clear();
380             _part2.graphics.clear();
381             drawPartLine(A,D,_part1);
382             drawPartLine(D,E,_part1);
383             drawPartLine(A,E,_part1);
384             drawPartLine(B,C,_part1);
385             drawPartLine(A,F,_part2);
386             drawPartLine(F,E,_part2);
387             drawPartLine(A,E,_part2);
388             drawPartLine(G,C,_part2);
389             
390             _tA1.x = getPointByExtension(getMidpoint(D,F),A).x-_tA.width*0.5;
391             _tA1.y = getPointByExtension(getMidpoint(D,F),A).y-_tA.height*0.5;
392             _tB1.x = getPointByExtension(G,B,25).x-_tA.width*0.5;
393             _tB1.y = getPointByExtension(G,B,25).y-_tA.height*0.5;
394             var extensionC:Point = getPointByExtension(getMidpoint(A,G),getC(),30);
395             getC().x > G.x ? _tC1.x = extensionC.x + 5-_tA.width*0.5:_tC1.x = extensionC.x - 5-_tA.width*0.5;
396             getC().y > G.y ? _tC1.y = extensionC.y + 5-_tA.height*0.5:_tC1.y = extensionC.y - 5-_tA.height*0.5;;
397             _tD1.x = getPointByExtension(getMidpoint(A,F),D).x-_tA.width*0.5;
398             _tD1.y = getPointByExtension(getMidpoint(A,F),D).y-_tA.height*0.5;;
399             _tE1.x = getPointByExtension(A,E).x-_tA.width*0.5;
400             _tE1.y = getPointByExtension(A,E).y-_tA.height*0.5;;
401             _tF1.x = getPointByExtension(getMidpoint(A,D),F).x-_tA.width*0.5;
402             _tF1.y = getPointByExtension(getMidpoint(A,D),F).y-_tA.height*0.5;;
403             _tG1.x = getPointByExtension(B,G,25).x-_tA.width*0.5;
404             _tG1.y = getPointByExtension(B,G,25).y-_tA.height*0.5;;
405             
406             __tA1.x = _tA1.x;
407             __tA1.y = _tA1.y;
408             __tC1.x = _tC1.x;
409             __tC1.y = _tC1.y;
410             __tE1.x = _tE1.x;
411             __tE1.y = _tE1.y;
412             
413             function drawPartLine(p1:Point,p2:Point,sp:Sprite):void
414             {
415                 sp.graphics.lineStyle(2,0xffffff);
416                 sp.graphics.moveTo(p1.x,p1.y);
417                 sp.graphics.lineTo(p2.x,p2.y);
418             }
419         }
420         private function overlap(sp1:Sprite,sp2:Sprite):void
421         {
422             Tweener.addTween(sp1,{x:this.x,y:this.y,time:0.8,transition:"linear"});
423             Tweener.addTween(sp2,{x:this.x,y:this.y,time:0.8,transition:"linear"});
424         }
425         private function separate(sp1:Sprite,sp2:Sprite):void
426         {
427             var k_DF:Number = (D.y-F.y)/(D.x-F.x);//DF的k即BG的k
428             var b_DF:Number = D.y - k_DF * D.x;//DF的b
429             var oldY:Number = E.y;
430             var oldX:Number = E.x;
431             var offX1:Number;
432             var offX2:Number;
433             var offY1:Number;
434             var offY2:Number;
435             
436             if (k_DF<1&&k_DF>-1) {//以x方向为标准
437                 if (D.x < F.x) {
438                     offX1 = -39;
439                     offX2 = 38;
440                 } else {
441                     offX1 = 39;
442                     offX2 = -38;
443                 }
444                 oldY = k_DF * (oldX + offX1) + b_DF;
445                 offY1 = oldY - E.y;
446                 Tweener.addTween(sp1,{x:this.x+offX1,y:this.y+offY1,time:0.8,transition:"linear"});
447                 oldY = k_DF * (oldX + offX2) + b_DF;
448                 offY2 = oldY - E.y;
449                 Tweener.addTween(sp2,{x:this.x+offX2,y:this.y+offY2,time:0.8,transition:"linear"});
450             } else {
451                 if (D.y < F.y) {
452                     offY1 = -39;
453                     offY2 = 38;
454                 } else {
455                     offY1 = 39;
456                     offY2 = -38;
457                 }
458                 oldX = (oldY+offY1-b_DF)/k_DF;
459                 offX1 = oldX - E.x;
460                 Tweener.addTween(sp1,{x:this.x+offX1,y:this.y+offY1,time:0.8,transition:"linear"});
461                 oldX = (oldY+offY2-b_DF)/k_DF;
462                 offX2 = oldX - E.x;
463                 Tweener.addTween(sp2,{x:this.x+offX2,y:this.y+offY2,time:0.8,transition:"linear"});
464             }
465         }
466         
467         private function getB(y:Number):Point
468         {
469             var k_AD:Number = (A.y-D.y)/(A.x-D.x);
470             var b_AD:Number = A.y - k_AD * A.x;
471             if (A.x == D.x) {
472                 B.x = A.x;
473                 B.y = y;
474             } else {
475                 B.y = y;
476                 B.x = (B.y-b_AD)/k_AD;
477             }
478             
479             return B;
480         }
481         private function getC():Point
482         {
483             if(B.x == G.x||A.x == E.x) return C;
484             var k1:Number = (B.y-G.y)/(B.x-G.x);
485             var b1:Number = B.y - k1 * B.x;
486             
487             var k2:Number = (A.y-E.y)/(A.x-E.x);
488             var b2:Number = A.y - k2 * A.x;
489             if(k1==k2){
490                 C.y = A.y;
491                 C.x = E.x;
492                 return C;
493             }
494             if (B.x == G.x) {
495                 C.x = B.x;
496                 C.y = B.y;
497                 return C;
498             } else {
499                 if (A.x == E.x) {
500                     C.x = A.x;
501                     C.y = k1 * C.x + b1;
502                 } else {
503                     C.x = (b2 - b1) / (k1 - k2);
504                     C.y = k2 * C.x + b2;
505                 }
506                 return C;
507             }
508             
509             C.x = (b2 - b1) / (k1 - k2);
510             C.y = k2 * C.x + b2;
511             
512             return C;
513         }
514         /** 
515          * 获取线段延长线上的某点point
516          * @param    p1 线段上较point的近端点
517          * @param    p2 线段上较point的远端点
518          * @param    r point近端点到point的距离
519          * @return
520          */
521         private function getPointByExtension(p1:Point,p2:Point,r:Number = 20):Point
522         {
523             var point:Point = new Point();
524             var a:Number = Math.atan2(p2.y - p1.y,p2.x - p1.x);
525             point.y = r * Math.sin(a) + p2.y;
526             var k:Number = (p1.y-p2.y)/(p1.x-p2.x);
527             var b:Number = p1.y - k * p1.x;
528             if(p1.x==p2.x){
529                 point.x = p1.x;
530                 return point;
531             }
532             if (p1.y == p2.y) {
533                 p2.x>p1.x?(point.x = p2.x+20):point.x = p2.x-20;
534                 point.y = p2.y;
535                 return point;
536             }
537             if (p1.x == p2.x) {
538                 point.x = p2.x;
539                 p2.y > p1.y ? point.y = p2.y + 20:point.y = p2.y - 20;
540             }
541             point.x = (point.y-b)/k;
542             return point;
543         }
544         /**
545          * 获取线段的中点
546          * @param    p1
547          * @param    p2
548          * @return
549          */
550         private function getMidpoint(p1:Point,p2:Point):Point
551         {
552             return new Point(p1.x+(p2.x-p1.x)*0.5,p1.y+(p2.y-p1.y)*0.5);
553         }
554         /**
555          * 同一直线上的三个点,判断p是否在p1和p2之间
556          * @param    p
557          * @param    p1
558          * @param    p2
559          * @return
560          */
561         private function isBetween(p:Point,p1:Point,p2:Point):Boolean
562         {
563             if (Point.distance(p1,p) < Point.distance(p1,p2) && Point.distance(p2,p) < Point.distance(p1,p2)) {
564                 return true;
565             }
566             return false;
567         }
568         private function getTextField(text:String,parent:Sprite,x:Number=0,y:Number=0):TextField
569         {
570             var textField:TextField = new TextField();
571             textField.autoSize = "left";
572             textField.selectable = false;
573             textField.mouseEnabled = false;
574             _tf.italic = true;
575             textField.defaultTextFormat = _tf;
576             textField.text = text;
577             textField.x = x;
578             textField.y = y;
579             parent.addChild(textField);
580             return textField;
581         }
582         private function getButton(text:String,parent:Sprite,x:Number=0,y:Number=0):TextField
583         {
584             var textButton:TextField = new TextField();
585             textButton.width = 110;
586             textButton.height = 38;
587             textButton.selectable = false;
588             textButton.border = true;
589             textButton.borderColor = 0x999999;
590             textButton.background = true;
591             textButton.backgroundColor = 0x333333;
592             _tf.align = TextFormatAlign.CENTER;
593             textButton.defaultTextFormat = _tf;
594             textButton.htmlText = "<a href='event:#'>"+text+"</a>";
595             textButton.x = x;
596             textButton.y = y;
597             parent.addChild(textButton);
598             return textButton;
599         }
600         private function getDot(radius:Number,parent:Sprite,name:String="",x:Number=0,y:Number=0):Sprite
601         {
602             var dot:Sprite = new Sprite();
603             dot.graphics.lineStyle(2,0xffffff);
604             dot.graphics.beginFill(0x00ff00);
605             dot.graphics.drawCircle(0,0,radius);
606             dot.graphics.endFill();
607             dot.x = x;
608             dot.y = y;
609             dot.name = name;
610             parent.addChild(dot);
611             return dot;
612         }
613     }
614 }

 

posted on 2015-09-01 13:49  晏过留痕  阅读(397)  评论(0编辑  收藏  举报