2016-07-12 5 views
0

movieclip을 사용자 정의 마우스 포인터 (동영상 클립)를 따르지 만 항상 정의 된 위치 (좌표), 마우스 포인터가있는 지점까지 마우스 포인터에서 멀어지는 거리. 아래 코드 : 코드 (26 & 27)의동영상 클립의 위치를 ​​다른 동영상 클립의 위치와 관련하여 정의하는 방법

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; 
    } 
} 

마지막 두 줄, 내가있는 사용자 정의 마우스 포인터 관련하여 orb_mc의 위치를 ​​정의하는 데 사용 무엇인가 "지팡이"그러나 것 같다 구체의 용이성 운동 결과 방해하고, 그래서 내가 사용하는 위치 코드는 당신이 증가 대입 연산자 중 하나 (-=, +=, /=, *=)를 사용하면 당신은 볼

+1

무엇이 필요한지 명확히 설명하십시오. 'orb_mc'가 마우스 위치로부터 주어진 오프셋에서 위치를 쉽게 찾거나 거기로 점프하기를 원하십니까? – Vesper

+0

예, 거기 뛰어 내리는 대신에 편안하게하고 싶습니다. 나는 위치를 정의하기 전까지는 여유를 얻을 수있었습니다. – SoloWalker

+0

나는 당신에게 @ 솔 워커를 붙였습니다. 1 분. –

답변

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 일을한다 :

  1. 증가
  2. 평가 카운터를 경우 mouseCounter >= mouseDelay
  3. 증가 orb_mc X/Y 좌표
  4. 양수인 orb_mc 최종 목적지까지의 x/y 좌표

이것은 매우 처음으로 follow 블록을 읽습니다. 내 대답에 코드를 모두 허용 비트가이 일을하는 이유는 다음과 같습니다

  1. 그들은 증가는 X/Y 좌표 (최종 값을 설정하지 마십시오)
  2. 그들이 변수 요인에 따라 변경 (speed)

다행입니다.

+0

데이비스, 내가 원하는대로 작동합니다. 방금 + 기호를 a로 대체했습니다. 대신 구를 구부리는 것보다 오히려 아래쪽에서 멀리 떨어지게 만들었습니다. – SoloWalker

+0

오, 잘 들려요! 나중에 참조 할 수 있도록 좀 더 명료하게 편집하십시오. –

관련 문제