
178
|
第十一章
proxyAll()
能夠接收多組函式名稱,當這些函式被呼叫時,它們的執行環境就會被
proxyAll()
調整成目前所處的作用域。如此一來,就能確保每次執行
destroy()
或
render()
函式時,執行環境都會是正確的。
事件
事件機制可說是 Spine 函式庫的核心,在函式庫內部隨處可見到事件的蹤跡。Spine 把
和事件相關的功能,都放進了
Spine.Events
模組中,如果有任何類別需要用到事件,都
可以將
Spine.Events
加進去。舉例來說,如果想讓某個 Spine 類別能支援事件機制,可
以這麼寫:
var User = Spine.Class.create();
User.extend(Spine.Events);
Spine.Events
提供了三組用來處理事件的函式:
•
bind(
事件名稱
,
回叫函式
)
•
trigger(
事件名稱
, [
*資料
])
•
unbind(
事件名稱
, [
回叫函式
])
如果你有用過 jQuery 的事件 API,應該就會覺得這些函式都似曾相識。如果想將
User
類別和某組事件綁在一起,隨即觸發該事件,可以這麼寫:
User.bind("create", function(){ /* ... */ });
User.trigger("create");
如果想讓多組不同的事件和同一組回叫函式綁在一起,只要用空白字元區隔開事件名稱
即可:
User.bind("create update", function(){ /* ... */ });
傳入 ...