flex實際上在編譯的時候會產生一些watcher**去監視繫結標籤所指定的表示式。在執行的時候,當繫結源的屬性得到修改,那麼這個watcher監視類就會觸發change事件去執行繫結更新的工作。在flex中有三種繫結資料方式:
1、{}
2、tag in mxml
3、bindingutils methods in actionscript
1、最常用的就是通過大括號{}的形式。
在{}繫結方式中,可以繫結property,actionscript expressions,e4
x expression和actionscript functions。繫結乙個屬性或者一段as的表示式已經應用的非常普遍了。偶爾我們需要用到繫結的是乙個as的函式,但是,繫結乙個函式的時候很多人 會碰到問題,為什麼我的資料沒有自動更新呢?本人也曾經碰到過,看了開發文件才知道,原來忽略了乙個細節問題。
就是在繫結函式的時候,通常情況下需要乙個bindable的property作為該函式的引數。
如這裡的instring一旦發生改變,會直接觸發函式getnewtext進行重新執行。
但如果你將函式的引數instring去掉,而直接放到getnewtext()中,那麼這個函式會在系統初始化的時候執行一次,而起不到繫結的效果。我可是在實際開發中有深刻體會。
2、用標籤效果和{}一樣,只需要指定source和destination兩個屬性即可,如:
在的source屬性中也可以使用{},如下面的例子中,其效果是等同的
3、在actionscript中實現繫結
這種方法是使用mx.binding.utils.bindingutils類來實現的。
如: bindingutils.bindproperty(textarea, "text", textinput, "text");
就是直接繫結了兩個輸入框的text屬性,還可以用bindsetter來繫結乙個資料來源和乙個set函式。如:
public function mysetterbinding(event:flexevent):void
這裡就是將textinput2的text屬性setter函式和setmystring函式繫結起來,
一旦textinput2的text被修改,那麼將會觸發setmystring函式。
Flex三種通訊方式
flex三種通訊方式 flex程式與伺服器端程式進行資料互動,有三種通訊方式 表1 1 通訊方式 通訊協議 互動資料格式 常用的http協議 xmlwebservice soap協議 xmlremoteobject flex 自定義的高效二進位制 資料通訊協議 amf 任意 可以是數字,字串,物件,...
React繫結this的三種方式
react可以使用react.createclass es6 classes 純函式3種方式構建元件。使用react.createclass會自動繫結每個方法的this到當前元件,但使用es6 classes或純函式時,就要靠手動繫結this了。接下來介紹react中三種繫結this的方法bind ...
事件的三種繫結方式
1.行內式繫結事件處理 另外一種寫法 functionclickme 這時候,這個函式的作用於這就這個物件本身 input 所以我們可以通過this獲取input的任何屬性。缺點 1.html與js 的耦合性高 2.在事件函式未預編譯之前,點選可能會報錯 3.這樣的事件處理程式在不同瀏覽器中的作用於...