如果您使用的是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