人気ブログランキング | 話題のタグを見る
フック?

そういえば、すでにある拡張子クラスのイベントハンドラを上書きするスクリプトを書くときなんですけども。単純に上書きだと、同じイベントハンドラを上書きするスクリプトを複数登録したとき最後に登録したスクリプトしか有効にならないので、こんな風にするとよいと思います。


// フック関数の定義
function js_onKeySpace_hook (originalHandler) {
return function (arg, classname, methodname) {

// オリジナルのハンドラの実行前に追加する処理をここに書きます
App.Notice('フックしたよ');

// オリジナルのハンドラを呼ぶ
if (originalHandler)
originalHandler.call(this, arg, classname, methodname);
else
invoke(arg, this.parent, methodname);

// オリジナルのハンドラの実行後に追加する処理をここに書きます
App.Notice('フックしたよ');
}
}
// フックする
class_js.prototype.onKeySpace = js_onKeySpace_hook(class_js.prototype.onKeySpace);

赤い字の部分が、それぞれのスクリプトを書く人が変更する必要のある個所です。特に関数名(サンプル中の 'js_onKeySpace_hook')はフックするそれぞれのスクリプトごと異なる必要があるので、そこだけ気をつけます。


by knife37 | 2004-11-23 21:47 | トリビア  | Top  | 
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
検索
最新のコメント
Hi! Good stu..
by lacedkl at 10:19
i think abou..
by MaybridabanTy at 06:31
Thank you!
by Roy at 20:27
Thank you!
by Patrick at 20:26
Great work!
by Andy at 20:25
Thank you!
by Rex at 20:23
Great work!
by Maggie at 20:23
I love it: ..
by siljb at 15:51
Keep up t..
by reizomo at 15:40
http://0buyp..
by affomfobe at 02:56
最新のトラックバック
フォロー中のブログ
ファン
記事ランキング
ブログジャンル
画像一覧