2011-08-28 2 views

답변

1

스프라이트에 서클을 그립니다. 프로그래밍이 다음과 같은 방법으로 수행 할 수 있습니다. (이 크기의 하드 코딩하지 않도록) 누군가가 그것을 클릭하면

var circle : Sprite = new Sprite(); 
circle.graphics.beginFill(0xffcc00); 
circle.graphics.drawCircle(20, 20, 20); // center x, y and radius 
addChild(circle); 

은, 원의 경계 사각형을 정의하는 Rectangle 인스턴스를 얻기 위해 getBounds() 방법을 사용하여 그리기 이 Rectangle 인스턴스의 정보를 사용하는 사각형.

// Create an empty Sprite into which we will draw our rectangle 
var rect : Sprite = new Sprite(); 

circle.addEventListener(MouseEvent.CLICK, handleCircleClick); 
function handleCircleClick(ev : MouseEvent) : void { 
    var bounds : Rectangle; 

    // Draw rectangular graphics into the rect sprite 
    bounds = circle.getBounds(circle.parent); 
    rect.graphics.beginFill(0x00ff00); 
    rect.graphics.drawRect(bounds.left, bounds.top, bounds.width, bounds.height); 

    // Add rect to stage, below circle 
    circle.parent.addChildAt(rect, 0); 
} 

나는 사용자가 원 밖에 클릭하면 RECT 스프라이트를 숨길 연습으로 당신에게 그것을 떠날거야.

이것은 단지 한 가지 방법 일 뿐이지 만 설정에 대해 아무 것도 설명하지 않고 사례에 대한 세부 정보를 제공하지 않기 때문에 가장 간단한 방법이라고 생각합니다.

+0

나는 분명히 설명하지 못해 죄송합니다. 이미 사각형이 있고 내 문제는 그것을 만들지 않습니다. 문제는이 스테이지의 다른 장소 (어쩌면 MovieClip, 버튼)를 클릭 할 때입니다. 버튼의 기능에 영향을주기 때문에 "stage.addEventListener (MouseEvent.CLICK, handleClick)"를 사용하십시오. – pluto

+0

세 가지 솔루션 : 모든 버튼에서 ev.stopImmediatePropagation()을 사용하거나 ev.target == stage인지 확인하거나 버튼과 동일한 표시 목록 분기에 속하지 않는 배경 스프라이트를 사용하고 해당 이벤트에 대한 클릭 이벤트를 수신합니다. . – richardolsson

+0

고맙습니다! 정말 도움이됩니다! – pluto

관련 문제