2011-03-27 17 views
1

私はこの古いUFCエフェクトへの方向を探しています - http://84.ufc.com/メインページに表示されます。マウスの位置に基づいて異なる軸で回転するムービークリップです。これまで私はこのスクリプトを見つけました:マウスの位置の異なる軸でムービークリップを回転するAs3

stage.addEventListener(MouseEvent.MOUSE_MOVE,EnterFrame); 
function EnterFrame(e:Event) 
{ 
    mc.rotation = (180*Math.atan2(mouseY-mc.y,mouseX-mc.x))/Math.PI + 90; 
} 

しかし、これはxとyだけを回転します。この効果にはどのようなアプローチがありますか?何か提案してください。私はこれを何ヶ月も探しました。

答えて

1

Flash CS4 +を使用し、Flash Player 10+をターゲットにしている場合は、3D DisplayObject API(別名「スペースのはがき」)を使用してこの効果を得ることができます。すべてのDisplayObjectには、xyzrotationXrotationY、およびrotationZのプロパティを調整できます。

ムービークリップを作成してステージに配置します。原点(クリップが選択されたときに表示される十字線)は、ステージの中央に配置する必要があります。ムービークリップにインスタンス名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を開始して以来

+0

マイク・ワウを発見し、私はこの効果を理解するために探しています。いくつかのテクニックを試しましたが、これは死んでいます。 Papervision3Dは後で私のためです。私はまだこれにいくぶん新しいですが、一度理解すればOOPを外に出す予定です。私は数学では大学レベルの代数と同じくらい良いので、時間がかかります。これはありがとうございました。 – Nerdysyntax

1

私はちょうど...

import flash.events.Event; 

addEventListener(Event.ENTER_FRAME, onEnterFrame); 

function onEnterFrame(event:Event):void 
{ 
    anim.rotationX += ((stage.mouseY - stage.stageHeight/2)-anim.rotationX*3) * 0.05; 
    anim.rotationY += ((stage.mouseX - stage.stageWidth/2)-anim.rotationY*5) * 0.05; 
} 
関連する問題