メイン コーダーズルーム【スクリプト系】 ビルトインメソッドのカスタム化について | 投稿するにはまず登録を |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
tozaki | Åê¹ÆNo.8624 投稿日時: 2004-6-27 11:16 |
新米 居住地: 投稿: 14
使用環境:
|
ビルトインメソッドのカスタム化について +39/トザキです。
検証していることがあるのですが、いまいち見えない部分が多いのでお知恵をお貸し頂ければと思います。 現在ちょっと特殊なアプリ系のFlashコンテンツを制作しているのですが、その中でXMLのloadの際に引数で渡された外部データのurlを加工してloadを実行したいと思っています。 --- a = new XML(); a.load("hogehoge.xml"); --- としたときに ---- a.load(filePath+"hogehoge.xml"); ---- という感じにしたいのです。 単純にloadの引数にfilePathを追加して記述すればよいのですが、オーサリング環境と実行される環境にズレがあるので、オーサリング環境での"filePath"の追加はデバッグなどの問題から避けたいと思っています。 そこでビルトインメソッドの"load"をカスタムできないか?と。 単純に書くと ---- XML.prototype.load = function(arg){ this.load(filePath+arg); } ---- ということなのですが、これだと無限ループに入ってしまいます。 ---- XML.prototype.load2 = function(arg){ this.load(arg); } XML.prototype.load = function(arg){ this.load2(filePath+arg); } ---- とか ---- XML2 = function () { }; XML2.prototype = new XML(); XML.prototype.load = function(arg) { this = new XML2(); this.load(filePath+arg); }; ---- とかやってみたのですが、うまく動きません(当然と言えば当然) ちなみにオーサリング環境ではこれらのカスタムクラスは適応されず、ノーマルの状態で動作。アプリケーションとして動作する場合のみ上記のメソッドに変更するという感じになります。 なので通常であれば --- XML.prototype.xload = function(arg) { this.load(filePath+arg); }; a = new XML(); a.xload("hogehoge.xml"); ---- としてオーサリング時にカスタムメソッドを記述して解決できるところができないという妙な状況であります。そもそもビルトインメソッドのカスタム化というものが許されるものなのか?というところもいまいち自信がないのですが・・・。 なんか分かりにくい状況で申し訳ありません。
|
フラット表示 | 前のトピック | 次のトピック |
投稿するにはまず登録を | |