ActionScript3.0直线编程,求帮助!
两个点,我现在只会用linestyle编程实现在两点间创建一条直线,现在想要从一点到另一点慢慢出现一条直线(就像有一只看不见的笔在画一样),该怎么实现啊?...
两个点,我现在只会用linestyle编程实现在两点间创建一条直线,现在想要从一点到另一点慢慢出现一条直线(就像有一只看不见的笔在画一样),该怎么实现啊?
展开
2个回答
展开全部
var firstPoint:Point = new Point(10,20);//你的第一个点
var secondPoint:Point = new Point(100,200);//你的第二个点
var dT:uint = 30;//绘制直线的间隔时间
var drawTimes:uint = 50;//绘制直线的线段数,总共执行的时间就是drawTimes * dT
var myTimer:Timer = new Timer(dT, drawTimes);
var curTimes:uint = 0;//当前画线的次数
var dXY:Point = new Point((secondPoint.x - firstPoint.x)/drawTimes, (secondPoint.y - firstPoint.y)/drawTimes);//平均每次画线的移动距离
myTimer.addEventListener(TimerEvent.TIMER, onTimerHandler);
var lineShape:Shape = new Shape();//直线
lineShape.graphics.moveTo(firstPoint.x, firstPoint.y);
addChild(lineShape);
myTimer.start();
function onTimerHandler(e:TimerEvent):void
{
curTimes++;
lineShape.graphics.lineTo(firstPoint.x + dXY.x * curTimes, firstPoint.y + dXY.y * curTimes);
}
var secondPoint:Point = new Point(100,200);//你的第二个点
var dT:uint = 30;//绘制直线的间隔时间
var drawTimes:uint = 50;//绘制直线的线段数,总共执行的时间就是drawTimes * dT
var myTimer:Timer = new Timer(dT, drawTimes);
var curTimes:uint = 0;//当前画线的次数
var dXY:Point = new Point((secondPoint.x - firstPoint.x)/drawTimes, (secondPoint.y - firstPoint.y)/drawTimes);//平均每次画线的移动距离
myTimer.addEventListener(TimerEvent.TIMER, onTimerHandler);
var lineShape:Shape = new Shape();//直线
lineShape.graphics.moveTo(firstPoint.x, firstPoint.y);
addChild(lineShape);
myTimer.start();
function onTimerHandler(e:TimerEvent):void
{
curTimes++;
lineShape.graphics.lineTo(firstPoint.x + dXY.x * curTimes, firstPoint.y + dXY.y * curTimes);
}
名片
2024-10-28 广告
2024-10-28 广告
HyperWorks是一款功能强大的工程仿真软件套件,由优菁科技(上海)有限公司代理。它提供了从概念设计到详细分析的全面解决方案,支持多种物理场的仿真分析,包括结构、流体动力学、热分析及电磁场等。该软件还具备拓扑优化、形状优化和尺寸优化等设...
点击进入详情页
本回答由名片提供
展开全部
用ENTER-FRAME事件的侦听,侦听器里写graphics.clear然后graphics.lineTo一个向终点方向位移少许的新位置。代码:
var p1:Point=new Point(100,100);
var p2:Point=new Point(200,200);
var counter:int=0;
var repeat:int=100;
var s:Sprite=new Sprite;
addChild(s);
stage.addEventListener(Event.ENTER_FRAME,handler);
function handler(e:Event){
if(counter++>repeat){
stage.removeEventListener(Event.ENTER_FRAME,handler);
return;
}
s.graphics.clear();
s.graphics.lineStyle(0,0);
s.graphics.moveTo(p1.x,p1.y);
s.graphics.lineTo(p1.x+(p2.x-p1.x)*counter/repeat),p1.y+(p2.y-p1.y)*counter/repeat);
}
var p1:Point=new Point(100,100);
var p2:Point=new Point(200,200);
var counter:int=0;
var repeat:int=100;
var s:Sprite=new Sprite;
addChild(s);
stage.addEventListener(Event.ENTER_FRAME,handler);
function handler(e:Event){
if(counter++>repeat){
stage.removeEventListener(Event.ENTER_FRAME,handler);
return;
}
s.graphics.clear();
s.graphics.lineStyle(0,0);
s.graphics.moveTo(p1.x,p1.y);
s.graphics.lineTo(p1.x+(p2.x-p1.x)*counter/repeat),p1.y+(p2.y-p1.y)*counter/repeat);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询