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度) 那么你是如何轮换的?你是在设置rotation
,transform.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 使用 ENTER_FRAME 对动态创建的影片剪辑进行动画处理
如何使用 as3 同时访问所有影片剪辑(以及影片剪辑中的影片剪辑......)?