2011-04-11 60 views
0

這看起來應該對我有用,但很明顯我做錯了什麼。我不知道究竟是什麼,這顯然是一個新手的錯誤找到答案搜索谷歌,所以幫助,將不勝感激。更改MC上懸停的alpha值

this.addEventListener(MouseEvent.MOUSE_OVER,function() { 
     this.alpha=0 
     }) 

在一個MC中,我希望它在鼠標懸停在它上面時變得不可見。我將這些代碼放入MC並且不使用它的原因是因爲這個MC將會重複多次。偵聽器確實能夠工作,正如trace()所測試的那樣。無論出於何種原因,阿爾法不會。謝謝你的幫助。

+0

「不工作」是真的很差的任何問題的描述。它總是需要澄清 - 無論是否沒有效果,或逐步淘汰除目標片段之外的其他內容。它如何不起作用? – alxx 2011-04-11 06:47:00

+0

顯然,回答者明白了問題。如果你足夠了解問題的答案,你就會知道「這個」不會影響別的東西。相反,它會影響「this」(帶有代碼的MC)或者什麼都不會(在這種情況下)。 – Anonymous 2011-04-11 07:35:28

回答

0

當你使用閉包(使用內聯匿名函數)時,將失去範圍。 this不是您徘徊的對象。

讓您可以在使用

var me:DisplayObject = this; 

,然後(修正代碼)

addEventListener(MouseEvent.MOUSE_OVER,function(event:MouseEvent):void { 
    me.alpha=0 
}) 

注意,我也把一個事件:在你的聽衆的MouseEvent參數,否則你會得到運行錯誤(你沒有得到那些已經?)

+0

在事件中使用外部函數時,我只會遇到事件錯誤。正如你所說的那樣,封閉不會給我錯誤。我也想知道爲什麼,但它對我有用。我想這是一個CS4的事情。還要感謝清理爲什麼它不起作用的理由。 – Anonymous 2011-04-11 07:30:34