ページ 11

【解決済み】他のプラグインのメソッドにアクセスする方法

Posted: 2017年9月17日(日) 20:00
by にゃたま
こんばんは。

アイテム倉庫プラグインのPH_Warehouse(https://forums.rpgmakerweb.com/index.ph ... age.50503/)のアイテム倉庫画面に1つウィンドウを追加したく
試行錯誤していますがうまくできません。
にっちもさっちもいかなくなったので皆さんのお力をお借りしたく投稿させていただきます。

オリジナルの自作プラグインからPH_Warehouseのcreateメソッドにウィンドウを
追加してみようと以下の関数を追加しみてました。

コード: 全て選択

var _Scene_Warehouse_create = Scene_Warehouse.prototype.create;
    Scene_Warehouse.prototype.create = function() {
        _Scene_Warehouse_create.call(this);
        this.createMyWindow(layoutMenu, opacityMenu);
    };
ところがReferenceError: Scene_Warehouse is not definedとなってしまい自作プラグインから
Scene_Warehouseが見えないようなのです。

スクリプトに詳しい方見えましたら上記現象について教えていただけないでしょうか?

追記
因みに以下のようにコアスクリプトにあるScene_Itemですと問題なく認識できるようです。

コード: 全て選択

var _Scene_Item_create = Scene_Item.prototype.create;
    Scene_Item.prototype.create = function() {
        _Scene_Item_create.call(this);
        this.createMyWindow(layoutMenu, opacityMenu);
    };
他の方が作成したプラグインにウィンドウを追加することはできないでしょうか。

再追記
トリアコンタン様の作成されたScene_SoundTestやScene_Glossaryについては認識できました。
とすると認識できるプラグインと認識できないプラグインが存在するようです。

メソッド内で他の関数から認識できるように設定(アクセス許可?)する方法があるのでしょうか?

Re: 他のプラグインのメソッドにアクセスする方法

Posted: 2017年9月17日(日) 20:39
by にゃたま
すみません。トリアコンタン様のプラグインに習って以下のスクリプトを追加したら
解決しました。お騒がせしましたorz

コード: 全て選択

function Scene_Warehouse() {
    this.initialize.apply(this, arguments);
}

Re: 【解決済み】他のプラグインのメソッドにアクセスする方法

Posted: 2017年9月18日(月) 05:15
by トリアコンタン
おはようございます。
補足ですが、即時関数(以下)で定義した変数に、関数外からアクセスすることはできないので
外側に定義しています。

コード: 全て選択

(function() {
...
})();