我想在Flex中旋转3D一个名为img1的图像。我想绕y轴旋转180度。我可以通过使用已经内置在Flex中的3D效果来实现这一点,但我想做更多不同。
我想在旋转过程中,在img1的背面会出现另一个名为img2的图像(在默认情况下,图像显示在背面是img1),旋转完成时,图像将是img2。
我该怎么做?
谢谢。
答案 0 :(得分:0)
如果你不需要透视效果,那很容易做到。一个粗略的实现(未经过测试!):
// Event.ENTER_FRAME event listener
void on_enter_frame(event:Event):void
{
// m_angle is a member of the class/flex component where on_enter_frame is declared
// ANGLE_DELTA is just a constant
m_angle += ANGLE_DELTA;
// Angle clamping to the range [0, PI * 2)
m_angle %= Math.PI * 2;
if (m_angle < 0)
m_angle += Math.PI * 2;
// If we currently look at the front side...
if (m_angle < Math.PI)
{
img1.visible = true;
img2.visible = false;
img1.scaleX = Math.cos(m_angle);
}
else
{
img1.visible = false;
img2.visible = true;
// If you omit negation, the back-side image will be mirrored
img2.scaleX = -Math.cos(m_angle);
}
}
因此每一帧我们都会增加旋转角度,将其钳制到[0,PI * 2]范围内。然后,根据旋转角度的值,我们隐藏/显示您的图像对,然后对可见图像执行x缩放。
答案 1 :(得分:0)
谢谢,现在我找到了解决方案。请在这里查看,这很容易。