2011-03-17 64 views
2

我有一個影片剪輯(比如:爲my_mc)持有雪碧,位圖,Texfield和按鈕(兒童)所有兒童禁用,只有一個鼠標活躍

影片剪輯(my_mc中)有一些變量我想從訪問我的事件通過e.target

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

所以當有人點擊了一個對象,它是my_mc中的一個孩子,只有my_mc中實際收到的點擊

爲此,我用my_mc.mouseChildren = false;

但是我還需要讓按鈕仍處於活動狀態,以便只有在有人點擊該按鈕時纔會收到CLICK的孩子。我試圖添加button.mouseEnabled = true;但這不起作用...

有什麼建議嗎?

+0

對所有其他孩子使用mouseEnabled = false,但按鈕? – Sam 2011-03-17 23:19:39

回答

1

cauko,SKU的TOTO ....

這是假設你的按鈕被稱爲BTN,如果有更多的則可能需要動態分配2ndary聽衆。您不能使用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); 
} 
+0

我會考慮你說的:mouseChildren刪除所有的孩子鼠標事件。我將使用對象名稱和條件來制定解決方法。謝謝 – simPod 2011-03-18 19:02:01

+0

這只是爲了顯示多個監聽器和傳播處理的潛力。不知道你想要做什麼,很難說最好的方法是什麼。您可能根本不需要停止傳播,並且可以通過「e.target.parent.my_val」as-well訪問父級MC的屬性 – Daniel 2011-03-19 17:14:35

2

如果該按鈕爲my_mc的內部,那麼你需要使用my_mc.button.mouseEnabled = true;

,並確保有my_mc.button藏漢事件偵聽器:my_mc.button.addEventListener(MouseEvent.CLICK, buttonHandler);

和buttonHandler功能以及。

如果還是不行....

單獨的按鈕到不同的動畫片段,並將其定位到你想要的那樣。然後,只需在原始動畫片段上使用my_mc.mouseChildren = false;,而不是在按鈕上。