トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     ビルトインメソッドのカスタム化について
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
+39
Åê¹ÆNo.8632
投稿日時: 2004-6-27 13:59
新米
居住地:
投稿: 14
使用環境:
XP + MX2004
Re: ビルトインメソッドのカスタム化について
あ、すいません。できました。
なるほどこういう風に書けばいいのですね。
引用:

XML.prototype.load2 = function(arg){
this.load(arg);
}
XML.prototype.load = function(arg){
this.load2(filePath+arg);
}

と一緒のことなのかなと勘違いしておりました。
これだとXML.load()を参照してしまってループに入ってしまうわけですね・・・。非常に勉強になりました。ありがとうございました。


----------------

youich
Åê¹ÆNo.8631
投稿日時: 2004-6-27 13:44
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: ビルトインメソッドのカスタム化について
引用:


なんか説明下手で申し訳ありません。
やはりビルトインメソッドのカスタマイズってのは難しそうですね・・。


??↓じゃだめなのですか?
引用:
オーサリング時(デバッグ時)にカスタムメソッドを使うようにする方が
安全じゃないかと思います。


XML.prototype.__load = XML.prototype.load;
XML.prototype.load = function(url){
this.__load(FILE_PATH + url);
}


----------------
- yo

+39
Åê¹ÆNo.8628
投稿日時: 2004-6-27 13:05
新米
居住地:
投稿: 14
使用環境:
XP + MX2004
Re: ビルトインメソッドのカスタム化について
説明が分かりにくかったみたいですいません。
なんというかScreenWeaverみたいな感じなんだけど、EXEレベルではなくClassも動的に進化してくようなSWFベースのプログラムになるので、オーサリング環境時に実動環境と同じ状況を作り出すのが難しいのです。
このためオーサリング環境時でも動作してデバッグなど可能だけど、実際の稼働環境に入れてもそのまま動作するようにできればと模索しています。あと私一人が作るのであればそのへん全然問題ないのですが、不特定多数に制作を分散させる可能性があるので、その辺できるだけ一般的なメソッドを使用させたいのです・・・。

なんか説明下手で申し訳ありません。
やはりビルトインメソッドのカスタマイズってのは難しそうですね・・。


----------------

+39
Åê¹ÆNo.8627
投稿日時: 2004-6-27 12:59
新米
居住地:
投稿: 14
使用環境:
XP + MX2004
Re: ビルトインメソッドのカスタム化について
トザキです。

すいません、カスタムメソッドが使えない理由が分かりにくかったですね。あまり詳しいことは業務上の問題で言えなくて申し訳ないのですが、かなり特殊な使い方をされるFlashで、実際稼動する環境ではプログラムを経由してSWFを制御します。そしてそれらのSWFへのクラス定義をSWFではなく、プログラムからSWFに埋め込むような感じでSWFに引き渡す感じになります。

このため実動環境に適したMethodはオーサリング環境には適応されず、オーサリング環境ではまったく何も動かないという状況になってしまうという代物であります。
上記の理由からカスタムメソッドを使用せずにビルトインメソッドベースで切替を行いたいと思っているわけです。

引用:

それか、ファイルパスを作るファンクションを作るとかでは対応は無理ですか?

ということでこれを適応してしまうとオーサリング時にはまったく動作しなくなってしまうという状況です。


----------------

野中文雄
Åê¹ÆNo.8626
投稿日時: 2004-6-27 12:47
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ビルトインメソッドのカスタム化について
カスタムメソッドを使えない理由が、正確に理解できません。ということで、カスタムメソッドを使ってはいけませんか?
// _root
// 第1フレームアクション
XML.filePath = "filePath/";  // オーサリング時コメントアウト
// カスタムメソッド定義
XML.prototype.xload = function(arg_str) {
    var myFilePath = XML.filePath;
    if (typeof myFilePath == "string") {
        this.load(myFilePath+arg_str);
    } else {
        this.load(arg_str);
    }
};

// XMLロード時
var my_xml = new XML();
my_xml.xload("hogehoge.xml");

引用:
+39さんは書きました:
a = new XML();
a.load("hogehoge.xml");
---
としたときに
----
a.load(filePath+"hogehoge.xml");
----
という感じにしたいのです。
単純にloadの引数にfilePathを追加して記述すればよいのですが、オーサリング環境と実行される環境にズレがあるので、オーサリング環境での"filePath"の追加はデバッグなどの問題から避けたいと思っています。
...
なので通常であれば
---
XML.prototype.xload = function(arg) {
this.load(filePath+arg);
};
a = new XML();
a.xload("hogehoge.xml");
----
としてオーサリング時にカスタムメソッドを記述して解決できるところができないという妙な状況であります。そもそもビルトインメソッドのカスタム化というものが許されるものなのか?というところもいまいち自信がないのですが・・・。/quote]


----------------
 

youich
Åê¹ÆNo.8625
投稿日時: 2004-6-27 12:00
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: ビルトインメソッドのカスタム化について
こんにちはトザキさん。

引用:


としてオーサリング時にカスタムメソッドを記述して解決できるところができないという妙な状況であります。そもそもビルトインメソッドのカスタム化というものが許されるものなのか?というところもいまいち自信がないのですが・・・。
なんか分かりにくい状況で申し訳ありません。


オーサリング時(デバッグ時)にカスタムメソッドを使うようにする方が
安全じゃないかと思います。

XML.prototype.__load = XML.prototype.load;
XML.prototype.load = function(url){
	this.__load(FILE_PATH + url);
}


それか、ファイルパスを作るファンクションを作るとかでは対応は無理ですか?

funciton filepath(path){
  return FILE_PATH + path;
}

function filepath(path){
   return path;
}
xml.load(filepath(url));


----------------
- yo

+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");
----
としてオーサリング時にカスタムメソッドを記述して解決できるところができないという妙な状況であります。そもそもビルトインメソッドのカスタム化というものが許されるものなのか?というところもいまいち自信がないのですが・・・。
なんか分かりにくい状況で申し訳ありません。



----------------

« 1 2 (3)
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops