AS3 影片剪辑中心旋转和左上角 X、Y 点

Posted

技术标签:

【中文标题】AS3 影片剪辑中心旋转和左上角 X、Y 点【英文标题】:AS3 Movieclip center rotation and top left X,Y points 【发布时间】:2012-05-01 00:11:03 【问题描述】:

我正在创建一个 Flash 图像裁剪器。我可以调整和移动包含我的图像的影片剪辑。该影片剪辑也可以旋转。

我遇到的问题是,为了正确裁剪图像,我需要图像位于 0 度处的原始 X、Y 坐标。这就是我所说的可移动影片剪辑。

无论如何我可以获取旋转度数和当前左上角X,Y并获得0度的原点吗?

感谢您的帮助

【问题讨论】:

确实没有任何代码可以显示。我在舞台上有一个电影剪辑,我从那个 MC 的中心旋转,左上角的 X,Y 会随着你的旋转而改变。我需要在旋转之前找出原始的左上角(0度) 那么你是如何轮换的?你是在设置rotationtransform.matrix,还是什么?看看为什么显示代码更容易? 我正在使用第三方转换管理器,所以为什么没有代码。 【参考方案1】:

好吧,您可以让 DisplayObject 为您完成工作:

var tempRotation:Number = displayObject.rotation;
displayObject.rotation = 0;
var referencePoint:Point = new Point(displayObject.x, displayObject.y);
displayObject.rotation = tempRotation;

【讨论】:

我认为这行不通。我知道你要去哪里,但我实际上是从显示对象的中心旋转的。据我所知,使用左上角的点。 我又看了一遍,它按预期工作。谢谢! 很高兴你试过了。正如您所意识到的,它很可能取决于容器层次结构,以及这些精灵相对于它们的父对象的定位方式。对于更通用的解决方案,肯定有一种简单的(被认为有点冗长)纯数学方法。【参考方案2】:

你为什么不能:

将其旋转到 0 度。

获取新的 x,y。

将其旋转一定角度。


顺便说一句,最好按中心旋转。所以你必须应用类似的东西

向后平移一半宽度和一半高度。

按角度旋转。

翻译回来...

【讨论】:

我是从中心做的。我只是不知道一个公式来计算我的原始点。我不能只是暂时将它旋转到 0 度,因为显示对象在舞台上是可见的。

以上是关于AS3 影片剪辑中心旋转和左上角 X、Y 点的主要内容,如果未能解决你的问题,请参考以下文章

AS3 - 将影片剪辑放置在指定坐标

AS3 使用 ENTER_FRAME 对动态创建的影片剪辑进行动画处理

获取时间轴动画影片剪辑 AS3 的 y 位置?

如何使用 as3 同时访问所有影片剪辑(以及影片剪辑中的影片剪辑......)?

Adobe CS5/AS3 - 我的影片剪辑没有“动作 - 影片剪辑”选项卡

在舞台 AS3 上放置多个影片剪辑实例