カテゴリ:トリビア( 1 )
 | Top  | 
フック?

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


// フック関数の定義
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')はフックするそれぞれのスクリプトごと異なる必要があるので、そこだけ気をつけます。


[PR]
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
最新のトラックバック
football nfl..
from football nfl t..
big penis
from big penis
lossless aud..
from lossless audio..
julianna ros..
from julianna rose ..
mind games
from mind games
game online ..
from game online po..
outer bank p..
from outer bank pet..
lingerie tee..
from lingerie teen ..
pisces chara..
from pisces charact..
wakefield co..
from wakefield coll..
フォロー中のブログ
ファン
記事ランキング
ブログジャンル
画像一覧