Итак, у вас есть слушатель MOUSE_CLICK на сцене, который срабатывает, когда вы нажимаете «элемент».
Что выглядит примерно так:
addEventListener(MouseEvent.CLICK, onClick)
function onClick(e:MouseEvent)
{
trace("CLICK")
}
mc.addEventListener(MouseEvent.CLICK, onMcClick)
function onMcClick(e:MouseEvent)
{
trace("mc")
e.stopPropagation();
}
Если это так, то да, сцена всегда получит это событие, так как оно имеет отношение к тому, как собственные флэш-события распространяются и всплывают. http://www.adobe.com/devnet/actionscript/articles/event_handling_as3_03.html
Вместо того, чтобы слушать сцену и вызывать stopPropogation, вы можете реструктурировать свой код. Вам нужно будет удалить слушателя на сцене и вместо этого добавить его к реальному предмету так:
mc2.addEventListener(MouseEvent.CLICK, onClick)
function onClick(e:MouseEvent)
{
trace("CLICK")
}
mc.addEventListener(MouseEvent.CLICK, onMcClick)
function onMcClick(e:MouseEvent)
{
trace("MC 2 CLICK")
}
Конечно, для этого может потребоваться изменить какой-то другой код, но, поскольку я его не вижу, я не уверен, что это такое. Просто помните, что события распространяются и всплывают. Так что, если у вас есть мувиклип 'c' внутри мувиклипа 'b', который находится на сцене, и у c и b есть слушатели для MOUSE_CLICK, то если вы нажмете на c, то и события b, и c получат это событие, так как оно всплывает показать список. Но если бы c не был в b, а c был на сцене, а b был на сцене, то этого бы не произошло, поскольку b не находится на пути к пузырению c. Надеюсь, это поможет:)