on beginSprite me me .FindLowerSprite() END beginSprite
on mouseUp me me .TransmitClick() END mouseUp
on FindLowerSprite me nSprite = me . spriteNum - 1 rMyRect = sprite ( me . spriteNum ). rect pnIntersectSprite = 0 repeat with nTest = nSprite down to 1 rTestRect = sprite (nTest). rect rIntersect = intersect ( rMyRect, rTestRect ) if rIntersect <> rect ( 0 , 0 , 0 , 0 ) then pnIntersectSprite = nTest exit repeat end if end repeat END FindLowerSprite
on TransmitClick me if pnIntersectSprite <> 0 then sendSprite ( pnIntersectSprite, #mouseUp ) end if END TransmitClick
on beginSprite me me .FindLowerSprite() END beginSprite
on mouseUp me me .TransmitEvent( #mouseUp ) END mouseUp
on FindLowerSprite me nSprite = me . spriteNum - 1 rMyRect = sprite ( me . spriteNum ). rect pnIntersectSprite = 0 repeat with nTest = nSprite down to 1 rTestRect = sprite (nTest). rect rIntersect = intersect ( rMyRect, rTestRect ) if rIntersect <> rect ( 0 , 0 , 0 , 0 ) then pnIntersectSprite = nTest exit repeat end if end repeat END FindLowerSprite
on TransmitEvent me , yEvent if pnIntersectSprite <> 0 then pMousePoint = the mouseLoc rTestRect = sprite (pnIntersectSprite). rect if pMousePoint. inside ( rTestRect ) then sendSprite ( pnIntersectSprite, yEvent ) end if end if END TransmitEvent