Actionscript 3 拉伸和旋转电影剪辑而不失真

Actionscript 3 拉伸和旋转电影剪辑而不失真,actionscript-3,flash,actionscript,Actionscript 3,Flash,Actionscript,我正在构建一个flash桌面应用程序,用户需要使用一条线路(或任何可以完成这项工作的东西)链接舞台上的两个Movieclips(一台计算机和一台路由器),我希望实现同样的效果:。我搜索并找到了这个,我尝试了代码并做了一些修改: link.addEventListener(MouseEvent.CLICK, linkOnClick); function linkOnClick(e:MouseEvent){ this.addEventListener(Event.ENTER_FRAME, ente

我正在构建一个flash桌面应用程序,用户需要使用一条线路(或任何可以完成这项工作的东西)链接舞台上的两个Movieclips(一台计算机和一台路由器),我希望实现同样的效果:。我搜索并找到了这个,我尝试了代码并做了一些修改:

link.addEventListener(MouseEvent.CLICK, linkOnClick);
function linkOnClick(e:MouseEvent){

this.addEventListener(Event.ENTER_FRAME, enterFrame);

var linkPoint:Point = new Point(link.x, link.y);
var mousePoint:Point = new Point();
var distance:Number;
var radians:Number;

function enterFrame(e:Event):void { 

    //Distance
    mousePoint.x = stage.mouseX;
    mousePoint.y = stage.mouseY;
    distance = Point.distance(linkPoint, mousePoint);
    link.width = distance;

    //Rotation
    radians = Math.atan2(stage.mouseY - link.y, stage.mouseX - link.x);
    link.rotation = radians * (180/ Math.PI);

    if(link.hitTestObject(router)){trace("Success");}
}
当我编译代码时,我得到了以下信息:,正如您所说,我发现的问题是:

1-线条的边缘遵循鼠标的方向,但有时它会超出光标,我希望光标拖动线条的边缘

2-线条的宽度发生变化,如果是90度,线条的宽度非常显著,我希望线条的宽度保持不变


我如何才能获得与图1所示相同的精确效果?

这是因为actionscript试图通过更改其容器MovieClip的比例来拉伸线条的厚度。但可以通过将“线比例”选项设置为“无”来防止出现这种情况。

为此,请选择线并打开“特性”菜单,然后从“缩放”选项的下拉菜单中选择“无”

但是,, 我建议您用代码画一条线:

写下面的代码:

this.graphic.clear ();
this.graphic.lineStyle(0x000000);
this.moveTo(startPoint.x,startPoint.y);
this.lineTo(endpoint.X,endpoint.y);

这是因为actionscript试图通过改变其容器MovieClip的比例来拉伸线条的厚度。但可以通过将“线比例”选项设置为“无”来防止出现这种情况。

为此,请选择线并打开“特性”菜单,然后从“缩放”选项的下拉菜单中选择“无”

但是,, 我建议您用代码画一条线:

写下面的代码:

this.graphic.clear ();
this.graphic.lineStyle(0x000000);
this.moveTo(startPoint.x,startPoint.y);
this.lineTo(endpoint.X,endpoint.y);

我建议通过每帧重绘一条线来实现,而不是通过转换预定义的图形来实现。你能给我们一个代码示例吗?但是你需要清除并重新绘制从起始位置到鼠标指针的直线,而不是连续绘制。谢谢,我尝试了代码,但是这个解决方案似乎没有画出一条直线,因为我想要一条沿着光标到目标的直线,你知道我该如何使用它来实现我的目标吗?我建议通过在每一帧中重新绘制一条线来实现它,而不是通过转换预定义的图形来实现。你能给我们一个代码示例吗?但是你需要清除并重新绘制从起始位置到鼠标指针的直线,而不是连续绘制。谢谢,我尝试了代码,但是这个解决方案似乎没有画出一条直线,因为我想要一条沿着光标到目标的直线,你知道我如何使用它来实现我的目标吗?非常感谢你,非常有效,现在,线条具有恒定的宽度且不缩放,但第一个问题仍然存在,线条的边缘并非始终跟随鼠标光标,有时在光标之前,有时在光标之后:。我还尝试使用代码绘制直线,但它似乎没有绘制直线,因为我想要一条直线。我更新了我的帖子,让graphic.lineTo sample动态绘制了一条直线。非常感谢,它非常有效,现在这条线的宽度恒定,不可缩放,但第一个问题仍然存在,线条的边缘并非始终跟随鼠标光标,有时在光标之前,有时在光标之后:。我还尝试使用代码绘制直线,但它似乎没有绘制直线,因为我想要一条直线。我更新了graphic.lineTo示例的帖子以动态绘制直线。非常感谢这正是我想要的,它工作得非常完美。非常感谢这正是我想要的,它工作得非常完美。