ページ 11

変数の番号管理

Posted: 2017年9月22日(金) 19:43
by よしだとものり
複数のプラグインを作って、変数でデータを受け渡すような
スクリプトを作っていると、複数個所に変数の番号をセットするように
なります。

以下のような書き方をしているのですが、
C言語のdefineのように一か所を書き換えると、
全て変わるようにすることはできないのでしょうか?

要は複数の箇所で変数の番号を書くような、やり方ではなく
一か所に変数の番号管理をまとめて書いて、
それを参照するようにしたいです。

プラグイン1
var hensu1=1;

プラグイン2
var hensu1=1;

プラグイン3
var hensu1=1;

Re: 変数の番号管理

Posted: 2017年9月23日(土) 12:44
by よしだとものり
質問変えました。

Re: 変数の番号管理

Posted: 2017年9月23日(土) 14:38
by しぐれん
この場合ゲーム変数($gameVariable)を介してやり取りするよりも、グローバル名前空間に関数をいくつか作ってそこでやり取りする方がいいと思います。
グローバル変数のリスクだけ使っているようなものなので。
同じ変数を参照するということは、機能として一つのプラグインにまとめる方が綺麗な設計になるでしょう。
もし複数のファイルでやりたいのであれば、即時間数による保護なしでdefine専用のプラグインを一つ追加するのがいいと思います。

Re: 変数の番号管理

Posted: 2017年9月23日(土) 14:57
by よしだとものり
いつもありがとうございます。

どうもjavascriptのオブジェクトのスコープがよく分からないですが

グローバル名前空間に関数をいくつか作った場合に、ツクールのクラスを
オーバライドした関数も、そのグローバル名前空間に作って上手く動くのでしょうか?

現在、チャットのデータ受信と通信の初期化の関数はTOMO_FireBaseクラスを
firebaseクラスで受信したデータはチャットデータとして配列にまとめ6番の変数を
更新しています。

表示に関しましてitembookのプラグインから無駄な部分をカットして
リフレッシュで6番を受け取りsetitemでindexのチャットデータをdrawtextする
ようにしています。

Re: 変数の番号管理

Posted: 2017年9月23日(土) 15:52
by しぐれん
動きます。
というより、動かして試すほうが速いと思います。
JavaScriptは厳密に知っているわけではないですが、グローバル名前空間からツリー構造になっています。
グローバル名前空間でfunctionを宣言すると、グローバルオブジェクトのメンバとして関数が宣言されます。
(globale[関数名] =function...のような処理になっているイメージです。ただ、100%合っているとは言えません)

Re: 変数の番号管理

Posted: 2017年9月23日(土) 20:44
by よしだとものり
ありがとうございます。
試してみます。