我试着展示一幅图片,它可以缩放和平移,它会随着指南针的读数旋转。使用下面的代码,这三个操作都可以工作,但它们相互影响。
以下是我想要达到的目标:
围绕屏幕中心旋转
将图片的同一部分保留在中间的比例
平移到图片中想要的位置
下面是下面代码的实际情况:
旋转按预期工作,绕着屏幕中心旋转。
缩放工作,但它围绕着图片的中心进行缩放。
只有当angle为零时,翻译才能按预期工作,否则它就会朝错误的方向移动
// the center of the view port
float centerX = screen.right/2;
float centerY = s
在做了以下操作之后,我挣扎了几个小时,试图计算出如何获得正确的旋转中心点:
1)将盒子拖到屏幕中心附近
2)按下测试按钮旋转方框90度
3)将盒子拖到另一个位置
4)再次按下测试按钮,再旋转90度(180)
5)由此产生的旋转和平移是关闭的。如果我把它旋转到0度,拖动这个盒子,然后按下测试按钮,它就会正确地旋转,它就能正常工作。请看我的密码:
enter code here
我试图在图片上执行一些3D旋转,但它比它看上去更难。事实上,当你在X和/或Y轴上旋转一幅图片时,它看起来是拉伸的(但它是正常的)。但是当你从Z轴旋转时,图片围绕屏幕的Z轴旋转,而不是它自己的轴。所以它看起来就像一张拉长的图片,它绕着一个轴旋转,而不是从一个侧面看,然后把它的中心旋转。
因为我知道这有点让人费解,下面是我使用的函数。你可以尝试一个圆形的图片,以获得更好的“效果”。想象一下你想要一个旋转的圆圈,而不是方向。你会看到图片围绕着屏幕的轴旋转,而不是它自己的轴。
public function rotate(target:IVisualElement, x:Number = 0, y:N