2010-03-09 2 views
1

나는 무대에 2 개의 스프라이트를 가지고 있습니다. bottomSprite가 표시 목록에 먼저 추가 된 후 topSprite가 추가됩니다. topSprite는 bottomSprite를 부분적으로 덮습니다.Actionscript 인덱스가 낮고 부분적으로 표시된 표시 객체의 마우스 이벤트 수신?

mouseList 및 mouseY 좌표를 추적하기 위해 MouseList.MOUSE_MOVED 알림의 bottomSprite에 이벤트 리스너를 추가했습니다. 그러나 topSprite에서 다루는 bottomSprite 부분에서는 알림이 작동하지 않습니다. topSprite 더 이상 마우스 이벤트를 수신하지 않습니다

var bottomSprite:Sprite = new Sprite(); 
bottomSprite.graphics.beginFill(0x666666, 0.5); 
bottomSprite.graphics.drawRect(150,150, 150, 150); 
bottomSprite.graphics.endFill(); 
addChild(bottomSprite); 

var topSprite:Sprite = new Sprite(); 
topSprite.graphics.beginFill(0x00FFFF, 0.5); 
topSprite.graphics.drawRect(250,50, 150, 150); 
topSprite.graphics.endFill(); 
addChild(topSprite); 

bottomSprite.addEventListener(MouseEvent.MOUSE_MOVE, traceCoords); 
function traceCoords(evt:MouseEvent):void 
    { 
    trace ("Coord = X:" + bottomSprite.mouseX + ", Y:" + bottomSprite.mouseY); 
    } 

답변

2
topSprite.mouseEnabled = false; 

참고. 둘 다 마우스 이벤트를 동시에 수신하게 할 수는 없습니다. 마우스 움직임은 bottomSprite 또는 topSprite의 상단에서 발생하기 때문에 둘 다 발생하지는 않으므로 형제입니다.

topSpritebottomSprite의 하위 항목 이었지만 하위 항목이 상위 항목에 속하기 때문에 나중에 마우스를 가져 가면 마우스 이벤트가 수신됩니다.

+0

아하! 말이된다. 감사 :) – TheDarkIn1978

관련 문제