phina.jsでassetに音源を読み込ませようとするとこの様なエラーが出てゲームが始まりません。
音源を読み込む際にCORS policyというものに引っ掛かってしまうらしいです。
CORS policyについて調べましたがよくわかりませんでした。別オリジンのリソースにアクセスするための制約らしいですが、なぜ音源だけそのような扱いになるのかが僕にはわかりませんでした。
CORS policyを回避する簡単な方法はローカルサーバーを立てることですが、アプリ化したい僕としてはあまり使いたくない方法でした。
なので色々と調べていたらこんな記事を見つけました。
Electronよりも手軽なNW.jsでデスクトップアプリ開発入門 - WPJ
以下記事一部抜粋
ローカルファイルに関する同一生成元ポリシー(same-origin policy)の制約がない。ファイルシステムからローカルファイルを開く際に同じフォルダーに置かれていないファイルへのXMLHttpRequestリクエストはブラウザーにブロックされるが、NW.jsアプリでは無効にできる
same-origin policyを無効にできると書いてあります。
same-origin policyとCORS policyの違いがよくわかりませんが、なんか出来そうな気がするので試してみると・・・
起動できました。BGMもしっかり流れます。NW.jsであればCORS policyを気にすることなくゲームが作れるようです。
あとはセーブデータの管理ですが、これも後ほど試してみようと思います。たぶんできるんじゃないかと思います。
できなければウェブストレージで何とかします。
今回はこの辺で。それでは。