ページ 11

【解決済】別のマップのデータを読み込む方法

Posted: 2017年2月11日(土) 00:12
by ぶちょー
プラグインを制作していて、「こうかな?」と思う方法で上手くいかなかったので、質問です。

コード: 全て選択

var mapId = 1;
var filename = 'Map%1.json'.format(mapId.padZero(3));
DataManager.loadDataFile('mapData', filename);
これで、 mapData にマップID1のデータが入ると思っているのですが、
次の行に console.log(mapData); とやると、 null が返ってきます。

そもそものやり方が間違っているのか、何か手順が足りないのか、分かる方いましたら、ご教示ください。

Re: 別のマップのデータを読み込む方法

Posted: 2017年2月11日(土) 01:02
by トリアコンタン
お疲れさまです。

処理そのものには大きな問題はありません。

にもかかわらずmapDataがnullなのは、「JavaScriptではデータのロードは非同期で行われる」という仕様のせいです。
つまり下記の処理が終わって結果が返ってきた段階ではまだロード中の状態なのです。

なのでロード処理実行後は、ロードが完了しているか1フレームごとに確認して、
ロードが完了したら完了後の処理を実行するようにします。

ロード中かどうかを確認するための処理の実装方法は、「DataManager.isMapLoaded」が参考になるかと思います。

Re: 別のマップのデータを読み込む方法

Posted: 2017年2月11日(土) 09:48
by ぶちょー
>>トリアコンタン様
ありがとうございます。

ロードに時間がかかるのではと思い、while文でぐるぐる回したら無限ループに陥ってしまっていました。
ご教示いただいたように、1フレーム毎にロード完了をチェックし、ロード完了後に処理をすることで解決することができました。