2016-07-12 9 views
0

ムービークリップをムービークリップにすることを試みていますが、常に定義された位置にとどまります(座標)、イージング時にマウスポインタからマウスピースのあるところまでの距離。ムービークリップの位置を他のムービークリップの位置との関係で定義する方法

import flash.display.MovieClip; 
import flash.events.Event; 
Mouse.hide(); 



var mouseCounter:int = 0; 
var mouseDelay:int = 5;// how many frames the mouse must stay still before the follow code is run.  
var speed:Number = 5; 

stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove); 

stage.addEventListener(Event.ENTER_FRAME,follow); 

// set counter back to zero whenever the mouse is moved. 
function mouseMove(e:MouseEvent):void 
{ 
    wand.x = stage.mouseX; 
    wand.y = stage.mouseY; 
    e.updateAfterEvent(); 
    mouseCounter = 0; 
} 

function follow(e:Event):void 
{ 

    // increment the counter each frame 
    mouseCounter++; 

    // now run the follow block if the mouse has been still for enough frames. 
    if (mouseCounter >= mouseDelay) 
    { 
     orb_mc.x -= (orb_mc.x - mouseX)/speed; 
     orb_mc.y -= (orb_mc.y - mouseY)/speed; 

     orb_mc.x = mouseX + 46.5; 
     orb_mc.y = mouseY +50.95; 
    } 
} 

コードの最後の2行(26 & 27)、私はそれを持っているようだが、「杖」であるカスタムマウスポインタとの関係でorb_mcの位置を定義するために使用するものです。以下のコードは、オーブ阻まれやすさが変動しましたので、私が使用した位置決め用のコードが間違っている場合はインクリメント代入演算子の1(-=+=/=*=)を使用したら、あなたは、見

+1

必要なものを明確にしてください。 'orb_mc'は、マウスの位置からのオフセット位置を簡単にするか、そこにジャンプするかのどちらかです。 – Vesper

+0

はい私はそこに飛び降りるのではなく、そこを楽にしたいです。私はポジションを定義するまでイージングを達成することができました – SoloWalker

+0

私はあなたに@SoloWalkerを持っています。一分。 –

答えて

1
function follow(e:Event):void 
{ 

    // increment the counter each frame 
    mouseCounter++; 

    // now run the follow block if the mouse has been still for enough frames. 
    if (mouseCounter >= mouseDelay) 
    { 
     // Do this: 
     orb_mc.x -= (orb_mc.x - mouseX + 46.5)/speed; 
     orb_mc.y -= (orb_mc.y - mouseY + 50.95)/speed; 

     // OR this: 
     //orb_mc.x = orb_mc.x - (orb_mc.x - mouseX + 46.5)/speed; 
     //orb_mc.y = orb_mc.y - (orb_mc.y - mouseY + 50.95)/speed; 

     // but not both. 
    } 
} 

を知りません、その直後に通常の割り当て演算子は明らかに以前の値を上書きします。あなたは、アクションスクリプトがコンピュータによって「読み込まれる」ことを理解しています(おそらく間違った言い回しですが、あなたは私のドリフトを受けます)。各ブロック(中括弧内の領域{ })が上から下に読み込まれます。だからあなたのfollowメソッドが呼び出された非常に最初の時間は、それがために、4つの物事をやっている:mouseCounter >= mouseDelay

  • 刻みorb_mcのx/y coordsの
  • 割り当てる場合

    1. インクリメントカウンタ
    2. を評価しますorb_mc最終目的地までのx/yコード

    初めてこれを行うのは、 followブロックが読み取られます。私の答えのコードの両方の許容可能なビットが2つの物事を行う理由はここにある:

    1. 彼らはインクリメントX/Y coordsの(最終値にそれらを設定しないでください)
    2. それらは変動要因に基づいて変化します( speed

    嬉しいです!

  • +0

    ありがとうデイビス、それは私がそれを望むのと同じように動作します。私はちょうど+記号を - に置き換えました。代わりにorbを底からではなく底から離して置くようにしました。 – SoloWalker

    +0

    ああ、聞いてよかった!将来の参照のために私の編集内容をもう少し明快に見てください。 –

    関連する問題