メイン コーダーズルーム【スクリプト系】 ビルトインメソッドのカスタム化について | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
+39 | Åê¹ÆNo.8624 投稿日時: 2004-6-27 11:16 |
新米 居住地: 投稿: 14
使用環境:
XP + MX2004 |
ビルトインメソッドのカスタム化について +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"); ---- としてオーサリング時にカスタムメソッドを記述して解決できるところができないという妙な状況であります。そもそもビルトインメソッドのカスタム化というものが許されるものなのか?というところもいまいち自信がないのですが・・・。 なんか分かりにくい状況で申し訳ありません。
|
youich | Åê¹ÆNo.8625 投稿日時: 2004-6-27 12:00 |
職人 居住地: kobe 投稿: 349
使用環境:
Tiger |
Re: ビルトインメソッドのカスタム化について こんにちはトザキさん。
引用:
オーサリング時(デバッグ時)にカスタムメソッドを使うようにする方が 安全じゃないかと思います。
それか、ファイルパスを作るファンクションを作るとかでは対応は無理ですか?
|
野中文雄 | Åê¹ÆNo.8626 投稿日時: 2004-6-27 12:47 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ビルトインメソッドのカスタム化について カスタムメソッドを使えない理由が、正確に理解できません。ということで、カスタムメソッドを使ってはいけませんか?
引用: +39さんは書きました: |
+39 | Åê¹ÆNo.8627 投稿日時: 2004-6-27 12:59 |
新米 居住地: 投稿: 14
使用環境:
XP + MX2004 |
Re: ビルトインメソッドのカスタム化について トザキです。
すいません、カスタムメソッドが使えない理由が分かりにくかったですね。あまり詳しいことは業務上の問題で言えなくて申し訳ないのですが、かなり特殊な使い方をされるFlashで、実際稼動する環境ではプログラムを経由してSWFを制御します。そしてそれらのSWFへのクラス定義をSWFではなく、プログラムからSWFに埋め込むような感じでSWFに引き渡す感じになります。 このため実動環境に適したMethodはオーサリング環境には適応されず、オーサリング環境ではまったく何も動かないという状況になってしまうという代物であります。 上記の理由からカスタムメソッドを使用せずにビルトインメソッドベースで切替を行いたいと思っているわけです。 引用:
ということでこれを適応してしまうとオーサリング時にはまったく動作しなくなってしまうという状況です。
|
+39 | Åê¹ÆNo.8628 投稿日時: 2004-6-27 13:05 |
新米 居住地: 投稿: 14
使用環境:
XP + MX2004 |
Re: ビルトインメソッドのカスタム化について 説明が分かりにくかったみたいですいません。
なんというかScreenWeaverみたいな感じなんだけど、EXEレベルではなくClassも動的に進化してくようなSWFベースのプログラムになるので、オーサリング環境時に実動環境と同じ状況を作り出すのが難しいのです。 このためオーサリング環境時でも動作してデバッグなど可能だけど、実際の稼働環境に入れてもそのまま動作するようにできればと模索しています。あと私一人が作るのであればそのへん全然問題ないのですが、不特定多数に制作を分散させる可能性があるので、その辺できるだけ一般的なメソッドを使用させたいのです・・・。 なんか説明下手で申し訳ありません。 やはりビルトインメソッドのカスタマイズってのは難しそうですね・・。
|
youich | Åê¹ÆNo.8631 投稿日時: 2004-6-27 13:44 |
職人 居住地: kobe 投稿: 349
使用環境:
Tiger |
Re: ビルトインメソッドのカスタム化について 引用:
??↓じゃだめなのですか? 引用: オーサリング時(デバッグ時)にカスタムメソッドを使うようにする方が
|
+39 | Åê¹ÆNo.8632 投稿日時: 2004-6-27 13:59 |
新米 居住地: 投稿: 14
使用環境:
XP + MX2004 |
Re: ビルトインメソッドのカスタム化について あ、すいません。できました。
なるほどこういう風に書けばいいのですね。 引用:
と一緒のことなのかなと勘違いしておりました。 これだとXML.load()を参照してしまってループに入ってしまうわけですね・・・。非常に勉強になりました。ありがとうございました。
|
+39 | Åê¹ÆNo.11368 投稿日時: 2004-10-8 12:45 |
新米 居住地: 投稿: 14
使用環境:
XP + MX2004 |
Re: ビルトインメソッドのカスタム化について 時間が空きましたが再び分からない点が出てきました。
これまではAS1でのビルトインメソッドのカスタム化でしたが、これをAS2でやるとどうなるのでしょう?
今のところCLASS定義をタイムラインからprototypeで更に変換して対応していますが、CLASS定義の中で定義できないかな?と色々検証中です。
|
youich | Åê¹ÆNo.11402 投稿日時: 2004-10-8 20:58 |
職人 居住地: kobe 投稿: 349
使用環境:
Tiger |
Re: ビルトインメソッドのカスタム化について どうもおひさしぶりです。(^^;
引用:
XMLを継承するクラスでいいのなら、素直にsuperを呼んでやれば いいのではないでしょうか?
|
+39 | Åê¹ÆNo.11412 投稿日時: 2004-10-9 4:03 |
新米 居住地: 投稿: 14
使用環境:
XP + MX2004 |
Re: ビルトインメソッドのカスタム化について いつもありがとうございます。
解決しました。 で、その先の処理として"onLoad"自体をカスタムできないか?と考えています。元々xmlは"onData"があるので現在はそれを経由して処理していますが、"onLoad"自体をカスタムすることは可能なのでしょうか? 現在実装可能な形のイメージは タイムライン上:
クラス内:
これをタイムライン上で"onLoad2"を使わずに"onLoad"で定義できるようにできないか?と(あまりオーサリング環境上にカスタムメソッドを見せたくないという理由ですが) この辺イベント系は独自に定義できないものでしょうか? onDataを使って一応onLoadの前に処理はしているのですが、イベント自体の置き換えとかができるとボタン系の"onRelease"等の定義の際に便利かなと思っています。
|
(1) 2 3 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |