Все дети отключены, активна только одна мышь - PullRequest
2 голосов
/ 18 марта 2011

У меня есть Movieclip (экземпляр: my_mc), который содержит Sprite, Bitmap, Texfield и Button (дочерние элементы)

Movieclip (my_mc) имеет некоторые переменные, к которым я хочу получить доступ из моего события через e.target

my_mc.addEventListener(MouseEvent.CLICK, my_fc);
function my_fc(e:MouseEvent):void{
    ...
}

поэтому, когда кто-то нажимает на объект, являющийся дочерним по отношению к my_mc, только my_mc фактически получает CLICK

, для этого я использовал my_mc.mouseChildren = false;

НО Iтакже необходимо, чтобы кнопка все еще была активной, чтобы только ребенок, который также нажимает на нее, получал щелчок.Я пытался добавить button.mouseEnabled = true;, но это не работает ...

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 18 марта 2011

Если кнопка находится внутри my_mc, вам нужно использовать my_mc.button.mouseEnabled = true;

и обязательно иметь прослушиватель событий для my_mc.button aswell: my_mc.button.addEventListener(MouseEvent.CLICK, buttonHandler);

и buttonHandlerфункция aswell.

И если она все еще не работает ....

Разделите кнопки в другой видеоклип и поместите их туда, где вы хотите, чтобы они были.Тогда просто используйте my_mc.mouseChildren = false; на вашем оригинальном мувиклипе, а не на кнопках.

1 голос
/ 18 марта 2011

cauko, skus toto ....

Предполагается, что ваша кнопка называется btn, если их больше, вам может понадобиться динамически назначить второго слушателя.Вы не можете использовать my_mc.mouseChildren = false;, потому что это удаляет все события мыши.

my_mc.addEventListener(MouseEvent.CLICK, my_fc);
function my_fc(e:MouseEvent):void{
    doSomething(e.target as MovieClip)
}
my_mc.btn.addEventListener(MouseEvent.CLICK, my_fc2);
function my_fc2(e:MouseEvent):void{
    e.stopImmediatePropagation();
    doSomething(e.target.parent);
}
function doSomething(mc:MovieClip):void{
    trace(mc);
}
...