注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

有你做翅膀,孤单都是坚强

生命中总要经历曲折,或许是我们不愿意,突然到最后走不通,想重新来过,记录每件小事

 
 
 

日志

 
 
关于我
K24

曾经的生涩,曾经的懵懂,曾经的自恋,都随风去吧。。。

网易考拉推荐
 
 

making ui 之带箭头拆线  

2013-08-07 20:39:37|  分类: @flex |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
making ui 之带箭头拆线 - K24 - 有你做翅膀,孤单都是坚强
 

加入几个控制点

var ps:ArrayCollection = new ArrayCollection();

ps.addItem(new Point(container.width/2 - 300, 3*container.height/4));
ps.addItem(new Point(container.width/2 + 300, 3*container.height/4));


/* ps.addItem(new Point(300,300));
ps.addItem(new Point(300,320));
ps.addItem(new Point(400,320));
ps.addItem(new Point(400,350)); */

pl = new PolylineDescriptor(ps, true);
pl.addEventListener(MouseEvent.CLICK,onClickHandler);
pl.draw();
container.addChild(pl);
画箭头的方法
private function drawArrowHead():void{

var startX:Number = Point(points.getItemAt(0)).x;
var startY:Number = Point(points.getItemAt(0)).y;
if(points.length > 1){
startX = Point(points.getItemAt(points.length-2)).x;
startY = Point(points.getItemAt(points.length-2)).y;
}
var endX:Number = Point(points.getItemAt(points.length-1)).x;
var endY:Number = Point(points.getItemAt(points.length-1)).y;
var arrowLength : Number = 10;
var arrowAngle : Number = Math.PI / 6;
var lineAngle : Number;
if(endX - startX != 0)
lineAngle = Math.atan((endY - startY) / (endX - startX));
else{
if(endY - startY < 0)
lineAngle = Math.PI / 2;
else
lineAngle = 3 * Math.PI / 2;
}
if(endY - startY >= 0 && endX - startX <= 0){
lineAngle = lineAngle + Math.PI;
}else if(endY - startY <= 0 && endX - startX <= 0){
lineAngle = lineAngle + Math.PI;
}
//定义三角形
var angleC : Number = arrowAngle;
var rimA : Number = arrowLength;
var rimB : Number = Math.pow(Math.pow(endY - startY,2) + Math.pow(endX - startX,2),1/2);
var rimC : Number = Math.pow(Math.pow(rimA,2) + Math.pow(rimB,2) - 2 * rimA * rimB * Math.cos(angleC),1/2);
var angleA : Number = Math.acos((rimB - rimA * Math.cos(angleC)) / rimC);

var leftArrowAngle : Number = lineAngle + angleA;
var rightArrowAngle : Number = lineAngle - angleA;
var leftArrowX : Number = startX + rimC * Math.cos(leftArrowAngle);
var leftArrowY : Number = startY + rimC * Math.sin(leftArrowAngle);
var rightArrowX : Number = startX + rimC * Math.cos(rightArrowAngle);
var rightArrowY : Number = startY + rimC * Math.sin(rightArrowAngle);


with(graphics){
moveTo(endX, endY);
lineTo(leftArrowX, leftArrowY);
moveTo(endX, endY);
lineTo(rightArrowX, rightArrowY);
}
}
  评论这张
 
阅读(55)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017