如果您使用的是Flash CS4 +并且定位到Flash Player 10+,则可以使用3D DisplayObject API(又名“太空明信片”)来实现此效果!所有的DisplayObject将有x
,y
,z
,rotationX
,rotationY
和rotationZ
属性,你可以调整。
创建一个动画片段并将其放置在舞台上。原点 - 选择剪辑时出现的十字线 - 应位于舞台中间。给movieclip一个实例名称clip
。
双击动画片段,并将其他动画片段放在其中。使用3D旋转和翻译工具将这些剪辑定位在父剪辑中的3D中。您可以在工具栏中找到3D工具 - 它具有类似蛋的图标,或者按键盘上的W或G键。
现在,这里是一些简单的代码,将调整基于鼠标的立场,即父剪辑的方向:
import flash.events.Event;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
function onEnterFrame(event:Event):void
{
clip.rotationX = (stage.mouseY - stage.stageHeight/2) * 0.1;
clip.rotationY = (stage.mouseX - stage.stageWidth/2) * 0.1;
}
你可以玩这个拿出多方面的影响。请注意,您只能使用这些属性进行简单的3D效果。您无法进行完整的3D旋转,因为剪辑不会从后到前排序。对于更复杂的效果,您需要使用像Papervision3D或Five3D这样的框架。
哇迈克,我一直在寻找,因为我一年前开始AS3理解这种效果。尝试了几种不同的技术,但是这已经死了。 Papervision3D对我来说很晚。我对此仍然有点新,但是一旦我明白了这一点,就打算将OOP解决掉。在数学中,我只和大学水平的代数一样好,所以需要一些时间。非常感谢。 – Nerdysyntax 2011-03-27 14:13:22