任何人都可以給我一些關於切換狀態時使用的標籤<mx:SetEventHandler />
正確使用的細節嗎? Flex文檔在這個主題上不是很詳細。 特別是刪除事件處理程序是我的興趣。請詳細瞭解MXML標籤<mx:SetEventHandler />
這個問題是我前面帖子的更具體的表述: Howto removeEventListener with <mx:SetEventHandler />?
感謝 巴特
任何人都可以給我一些關於切換狀態時使用的標籤<mx:SetEventHandler />
正確使用的細節嗎? Flex文檔在這個主題上不是很詳細。 特別是刪除事件處理程序是我的興趣。請詳細瞭解MXML標籤<mx:SetEventHandler />
這個問題是我前面帖子的更具體的表述: Howto removeEventListener with <mx:SetEventHandler />?
感謝 巴特
SetEventHandler
幾乎做什麼它在錫說。對於給定的狀態,您可以爲所選事件定義事件處理程序。您提供了用於定義事件的參數,用於響應事件的函數以及調度事件的目標對象。 adobe docs非常清楚。
如果我正確理解你的問題,你想刪除一個事件處理程序,而不是設置一個不同的狀態。如果是這種情況,那麼你有幾個選項,你可以爲每個狀態定義一個不同的處理程序,其中一些不做任何處理,或者你可以在給定狀態的SetEventHandler
賦稅函數定義中定義空值。
<mx:State name="hasHandler">
<mx:SetEventHandler name="click" handlerFunction="doClick" target="{myClickableObject}"/>
<mx:State/>
<mx:State name="hasNoHandler">
<mx:SetEventHandler name="click" target="{myClickableObject}"/>
<mx:State/>
離開handlerFunction
未定義將其設置爲空。
但是,我會做的只是爲那些需要它們的狀態定義SetEventHandlers
。你應該能夠設置你的狀態邏輯,這樣你永遠不需要移除事件處理程序,只需設置它們。我認爲這更接近SetEventHandler的預期用途,並且可以節省您不得不依賴於爲某些州設置空值的情況。
HTH。如果你的谷歌「Flex SetEventHandler」有很多關於它的好資源。
P.S.如果您要使用此方法,請確保您的默認狀態沒有特別處理該事件。
謝謝,這正是我所需要的。我知道我應該小心不正確地使用刪除事件處理程序。我的問題主要是關於標籤的概念。 除了你的代碼行之外:第二行到最後一行應該是: ' ' 爲了移除'click'事件處理特別是'myClickableObject' –
2009-12-29 16:42:26
感謝您的代碼糾正,你當然是對的。我更新了上面的代碼以反映這一點。 – Simon 2009-12-29 17:00:21