I’m using Adobe Animate HTML5 Canvas. EaselJS would also apply.
How can I check if a symbol/MC is a child of another symbol/MC?
So a symbol/MC is added as a child of lensParentLeft
in the following. I then want to check if it is a child of that parent in a later function:
function onMouseUp(evt){ var item = evt.currentTarget; item.drag = false; var pt = item.localToLocal(item.dot.x, item.dot.y, item.LFLensHolder.hitBox); if(item.LFLensHolder.hitBox.hitTest(pt.x, pt.y) ){ item.x = item.LFLensHolder.x; item.y = item.LFLensHolder.y; item.lensParentLeft.addChild(item); } }
The later function being the following, probably in the if(item.drag)
condition statement:
function onMouseMove(evt){ var item = evt.currentTarget; if (item.drag){ var pt = item.parent.globalToLocal(evt.stageX, evt.stageY); item.x = pt.x - item.offset.x; item.y = pt.y - item.offset.y; } }
Advertisement
Answer
You can use the contains
method. It does a recursive parent check up to the stage to find an ancestor.
https://createjs.com/docs/easeljs/classes/Container.html#method_contains
if (someParent.contains(evt.currentTarget)) { // Do something }
Note that contains
will also return true if you check a symbol against itself.