初めまして。
ツクールMVで、ノベルゲーム風のゲームを制作しています。
現在、セーブボタンを押すと
cannot read property 'refresh' of undefinedというエラーメッセージが出てしまい
困っています。F8で原因部位を特定したのですが、修正の方法が分かりません。
画像に表記されたスクリプトを使っております。
試したこと
最初にCannot read property "bitmap" of undefinedというバグがあったので
トリアコンタン様の「選択肢表示中のロードエラー修正プラグイン」を
導入し、修正。bitmapエラーは出なくなったが、今度はrefreshエラーが出るようになった。
解決方法、スクリプトなど、
原因が分かる方、何方か詳しい方教えていただけないでしょうか?
ツクール初心者です。
ノベルゲーム風に見せる為に使用しているプラグイン
「ピクチャのボタン化プラグイン」https://triacontane.blogspot.com/2015/11/blog-post_23.html
「動的文字列ピクチャ生成プラグイン」https://triacontane.blogspot.com/2015/12/rpgmv-rpgmv-dtext-1-rpgmv-dtext-dtext.html
「イベント実行中もセーブを可能にするPlugin」https://kuina.games/p-510/#google_vignette
制作はこちらの記事を参考にしています。https://note.com/purasann/n/n4151747ed1d2
Attachments
【解決済み】cannot read property 'refresh' of undefinedというエラーメッセージ
-
- 記事: 7
- 登録日時: 2025年2月21日(金) 13:44
【解決済み】cannot read property 'refresh' of undefinedというエラーメッセージ
最後に編集したユーザー Darkness89 [ 2025年4月24日(木) 23:32 ], 累計 1 回
- Plasma Dark
- 記事: 731
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: cannot read property 'refresh' of undefinedというエラーメッセージ
セーブシーンで本来存在するべきウィンドウが作られていないために起きているエラーです。
どうやってセーブシーンを呼び出しているかを確認して、そこを適切に修正してください。
どうやってセーブシーンを呼び出しているかを確認して、そこを適切に修正してください。
- Plasma Dark
- 記事: 731
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: cannot read property 'refresh' of undefinedというエラーメッセージ
URLを貼ってくださるのは良いのですが、貼ってくださったプラグインのうち、「イベント実行中もセーブを可能にするPlugin」はOFFになっているようです。
直接原因には関係ないでしょうが、今後使う予定がないのであればOFF状態のプラグインは混乱防止のため削除しておくことを推奨します。
原因の調査については、実現したい仕組みを再現するために必須なプラグイン以外をすべてOFFにし、コアスクリプトを新規プロジェクトからコピーしてきたもので上書きしてから、もう一度同じエラーが出るか試すのが良さそうです。
(新規プロジェクトに必須プラグインとイベントを移植して確認しても良いですが、どの道今のプロジェクトのコアスクリプトは正常なもので上書きしておくことを推奨します)
実現したい仕組みは、イベントで選択肢の表示を行っている最中にセーブシーンを呼び出してセーブができる、であると仮定すると、以下のプラグインが今のところ必須になるでしょう。
- セーブシーンを開くボタン表示のための DTextPicture 及び PictureCallCommon
- タッチの挙動を変える ChangeWindowTouchPolicy
- 選択肢表示中のロードを実現するための BugFixLoadErrorChoiceSetup
それから、新規プロジェクトを作成し、コアスクリプト(js/rpg_xxxx.js)をすべてコピーしてきて、エラーが出ているプロジェクト内のものに上書きしてください。
動作確認の際には既存のセーブデータをロードせず、必ずニューゲームから始めるようにしてください。
なにか変更を加えた場合、セーブデータがプロジェクトと互換性を失っている可能性があります。
ロードした後の動作を確認したい場合も、ニューゲームを開始してセーブ、その後プロジェクトに変更を加えずにロードするという手順で確認してください。
直接原因には関係ないでしょうが、今後使う予定がないのであればOFF状態のプラグインは混乱防止のため削除しておくことを推奨します。
原因の調査については、実現したい仕組みを再現するために必須なプラグイン以外をすべてOFFにし、コアスクリプトを新規プロジェクトからコピーしてきたもので上書きしてから、もう一度同じエラーが出るか試すのが良さそうです。
(新規プロジェクトに必須プラグインとイベントを移植して確認しても良いですが、どの道今のプロジェクトのコアスクリプトは正常なもので上書きしておくことを推奨します)
実現したい仕組みは、イベントで選択肢の表示を行っている最中にセーブシーンを呼び出してセーブができる、であると仮定すると、以下のプラグインが今のところ必須になるでしょう。
- セーブシーンを開くボタン表示のための DTextPicture 及び PictureCallCommon
- タッチの挙動を変える ChangeWindowTouchPolicy
- 選択肢表示中のロードを実現するための BugFixLoadErrorChoiceSetup
それから、新規プロジェクトを作成し、コアスクリプト(js/rpg_xxxx.js)をすべてコピーしてきて、エラーが出ているプロジェクト内のものに上書きしてください。
動作確認の際には既存のセーブデータをロードせず、必ずニューゲームから始めるようにしてください。
なにか変更を加えた場合、セーブデータがプロジェクトと互換性を失っている可能性があります。
ロードした後の動作を確認したい場合も、ニューゲームを開始してセーブ、その後プロジェクトに変更を加えずにロードするという手順で確認してください。
-
- 記事: 7
- 登録日時: 2025年2月21日(金) 13:44
Re: cannot read property 'refresh' of undefinedというエラーメッセージ
返信ありがとうございました。
教えていただいた方法を試したところ、問題が無事に解決いたしました。
とても助かりました。本当にありがとうございます!
教えていただいた方法を試したところ、問題が無事に解決いたしました。
とても助かりました。本当にありがとうございます!