2014-11-19 2 views
0

아마도 누군가가 경험 한 이상한 문제가 있습니다. ActionScript 3 및 drawRect() 함수를 사용하여 런타임에 무비 클립을 만드는 동안 수학을 사용하여 그려지는 위치를 결정할 때 깜박임이 발생합니다.좌표에 수학을 사용할 때 AS3 및 drawRect()를 사용하는 깜박임 사각형

다음 코드는 멋지고 단단한 나는이 같은 사각형이 그려 도착 위치를 조정하려고 시작할 때, 그러나

var mc:MovieClip = new MovieClip(); 
mc.graphics.beginFill(0xFF1230); 
mc.graphics.drawRect(mouseX, mouseY, 100, 80); 
mc.graphics.endFill(); 

을 :

mc.graphics.drawRect(mouseX - 50, mouseY - 50, 100, 80); 

사각형이 그려 도착하지만 지속적으로 깜박임이 더 문제를 사각형입니다.

나는 다양한 데이터 유형을 시도하고 수학을 자체 변수로 분리하는 많은 변형을 시도했지만 동일한 일이 발생합니다.

이전에 이와 같은 경험이있는 사람이 있습니까? 어떤 도움이나 정보라도 높이 평가합니다!

+0

당신은 지속적으로 마우스 이동으로의 drawRect 호출하고 있습니까? – Karmacon

+0

나는 그렇게 생각하지 않는다. 내 그림 함수는 버튼의 MOUSE_OVER 이벤트에 연결됩니다. –

+0

다시 그릴 때마다 graphics.clear()를 먼저 호출해야합니다. 그렇지 않으면 겹쳐져 이상한 동작이 발생합니다. – Karmacon

답변

0

각 프레임을 사각형으로 다시 그리는 대신 간단하게 비율을 조정할 수 있습니다.

var mc:MovieClip = new MovieClip(); 
mc.graphics.beginFill(0xFF1230); 
mc.graphics.drawRect(0,0,1,1); 
mc.graphics.endFill(); 
addChild(mc); 

stage.addEventListener(Event.ENTER_FRAME, loop); 
function loop(e:Event) { 
    mc.scaleX = mouseX; 
    mc.scaleY = mouseY; 
} 
1
  1. 그것은 가능성이 도면 코드보다 설정 한 이벤트 리스너에 문제가 있습니다. 당신이 MouseEvent을 사용하고있는 것 같습니다. 누구든지 해당 코드를 게시해야합니다 (직사각형을 그릴 직후에 마우스 타겟이 변경되는 것처럼 보일 수도 있음)

  2. 그래픽을 다시 그리지 않아도됩니다. 매번 클리어하지 않으면 프레임 속도가 시간에 따라 영향을받습니다. 사각형을 오프셋하고 동영상 클립의 위치를 ​​이동하는 것이 좋습니다. 이 같은

:

var mc:MovieClip = new MovieClip(); 
mc.graphics.beginFill(0xFF1230); 
mc.graphics.drawRect(-50, -50, 100, 80); 
mc.graphics.endFill(); 
addChild(mc); 

stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove); 
function onMove(e:MouseEvent):void { 
    mc.x = mouseX; 
    mc.y = mouseY; 
} 
+0

대단히 감사합니다. 나는 당신의 # 1 점이 무슨 일이 벌어지고 있는지 내기를 걸었다. 이 이벤트가 발생하면 MouseEvent MOUSE_OVER를 사용하고 사각형을 그립니다. 마우스 타겟이 드로잉시 직사각형으로 바뀔 가능성이 있습니다. 이는 내 의도가 아닐 수 있습니다. –