diff --git a/src/core/renderers/webgl/managers/MaskManager.js b/src/core/renderers/webgl/managers/MaskManager.js index 2ff65b5..0c11399 100644 --- a/src/core/renderers/webgl/managers/MaskManager.js +++ b/src/core/renderers/webgl/managers/MaskManager.js @@ -48,7 +48,7 @@ if(rot % 90) { - this.pushStencilMask(target, maskData); + this.pushStencilMask(maskData); } else { @@ -57,7 +57,7 @@ } else { - this.pushStencilMask(target, maskData); + this.pushStencilMask(maskData); } } }; diff --git a/src/core/renderers/webgl/managers/MaskManager.js b/src/core/renderers/webgl/managers/MaskManager.js index 2ff65b5..0c11399 100644 --- a/src/core/renderers/webgl/managers/MaskManager.js +++ b/src/core/renderers/webgl/managers/MaskManager.js @@ -48,7 +48,7 @@ if(rot % 90) { - this.pushStencilMask(target, maskData); + this.pushStencilMask(maskData); } else { @@ -57,7 +57,7 @@ } else { - this.pushStencilMask(target, maskData); + this.pushStencilMask(maskData); } } }; diff --git a/src/interaction/InteractionManager.js b/src/interaction/InteractionManager.js index 56b9945..d2a807f 100644 --- a/src/interaction/InteractionManager.js +++ b/src/interaction/InteractionManager.js @@ -378,12 +378,24 @@ var hit = false, interactiveParent = interactive = displayObject.interactive || interactive; + + + // if the displayobject has a hitArea, then it does not need to hitTest children. if(displayObject.hitArea) { interactiveParent = false; } + // it has a mask! Then lets hit test that before continuing.. + if(displayObject._mask) + { + if(!displayObject._mask.containsPoint(point)) + { + return false; + } + } + // ** FREE TIP **! If an object is not interacttive or has no buttons in it (such as a game scene!) set interactiveChildren to false for that displayObject. // This will allow pixi to completly ignore and bypass checking the displayObjects children. if(displayObject.interactiveChildren) @@ -420,6 +432,8 @@ } } + + // no point running this if the item is not interactive or does not have an interactive parent. if(interactive) { @@ -427,6 +441,7 @@ // We also don't need to worry about hit testing if once of the displayObjects children has already been hit! if(hitTest && !hit) { + if(displayObject.hitArea) { displayObject.worldTransform.applyInverse(point, this._tempPoint); @@ -436,6 +451,8 @@ { hit = displayObject.containsPoint(point); } + + } if(displayObject.interactive)