2011-11-12 41 views
0

可以說我有一個可以是0(假)或1(真)。有沒有辦法檢測變量何時變爲1(真)。我想要一個聲音,只要它變成真實,但只有一次。變量變化檢測動作3.0

感謝您的幫助!

回答

6

還有就是信號變化值沒有內置的機制,但是你可以很容易地實現這個你自己:你的變量創建一個setter函數,並把它稱之爲playSound()方法,每當值設置爲1

private var _myVariable : int = 0; 

public function set myVariable (n:int) : void 
{ 
    _myVariable = n; 
    if (n == 1) playSound(); 
} 

如果你打算在更大規模上做這樣的事情,你可能也想看看Observer pattern

+0

在這裏使用布爾數據類型不是更好嗎? – TheDarkIn1978

+0

根據值來自哪裏,它可能不會:例如,當您從XML屬性傳入值時,沒有實際的布爾值,但只有字符串表示。那麼建議使用「0」和「1」而不是「真」和「假」。但是,這並不會改變有關通知問題的任何內容。 – weltraumpirat

0
+0

BindingUtils對於用[Bindable]元標記前綴的變量很有用。它只被Flex編譯器使用,並在內部爲標記爲[Bindable]的變量生成setter和getter。 – catholicon

+1

我個人更喜歡在這種情況下手動添加事件派發給變量設置器,但是'BindingUtils'在.as類文件中工作正常,並且是這種情況下唯一的as3選項 – www0z0k