保存・開く関連の命令がなでしこ1となでしこ3でかなり変わったのでまとめてみた。
なでしこ3のwnakoではパソコンに対して自由なファイルアクセスができない。
まとめ!
■なでしこ1
・保存
・開く
絶対パスで指定すると絶対パスのファイルにアクセス。
相対パスで指定すると作業フォルダ(母艦パス)からの相対パスのファイルにアクセス。
テキストファイル・バイナリファイルどっちも開ける。
■なでしこ3
・保存
・開く
(ローカルストレージ保存
・ローカルストレージ読む
)
wnakoではローカルストレージにアクセスする。
引数はファイル名ではなく、キー(項目名)を指定する。
文字数値、配列、辞書型の変数を保存し、開くで変数を復元できる。
cnakoではパソコンに保存(なでしこ1と同じ?)
・ファイル保存した時
・ファイル読んだ時
webkit版のみ。 appidのフォルダにアクセスする。
日本語のファイル名は化ける。
・AJAX受信
、AJAX受信時
引数にURLを指定するとデータ取得する。
webkit版で相対パスを指定するとindex.htmlからの相対パスのファイルを開く
・wnakoは基本的にファイルの保存ができない
・ダウンロードという形でファイルを保存させることはできる
くわしく!
・保存
(開く
)
なでしこ1で保存
(開く
)といえば、ファイルとして保存(開く)することだった。
なでしこ3(wnako)では保存
(開く
)がローカルストレージに変数を保存することになった。
正確にはJSON形式で保存するようだ。
・ローカルストレージについて
ローカルストレージはブラウザの保存領域みたいなやつ。
ブラウザが変わると読み込めない、保存容量に制限がある、中身は容易に別プログラムから参照できる、などの難点がある。
使うとすれば、カーソル位置などの失ってもよい、価値のない情報になると思う。
JSONで保存されるので、配列や辞書型も保存できる。 ゲームのデバッグする時に変数を保存する先として便利かもしれない。
//辞書型の保存と取り出しが可能
A={"x":123,"y":456, "test":789}
Aをコンソール表示 //→ {x: 123, y: 456, test: 789}
Aを「AAA」にローカルストレージ保存
「AAA」をローカルストレージ読む
Bはそれ
Bをコンソール表示 //→ {x: 123, y: 456, test: 789}
B@"y"を表示 //→456
ファイル保存した時・ファイル読んだ時のフォルダ
webkit版で追加された命令、ファイル保存した時
・ファイル読んだ時
は
[ユーザーフォルダ]\.nadesiko3\[appid]\ファイル名
にファイルを保存できる。
webkit版のindex.jsonのなかに"appid" : ~~ と書いてある部分があり、そこでappidを指定できる。
ユーザー名がAdmin
、appidがnadesiko3app
だと
C:\Users\Admin\.nadesiko3\nadesiko3app\ファイル名
みたいな感じ。
appid、ファイル名は日本語が入ると化けるので注意。
うちのパソコンではユーザーフォルダをDドライブに移しているため、D:\Users~になっている。
なでしこ1の変数「ユーザーホームフォルダ」(%userprofile%)がユーザーフォルダにあたるはずなんだけど、なでしこ1でユーザーホームフォルダを言う
するとCドライブ、C:\Users~を返す。
ちょっとよくわからないです……
AJAX受信、AJAX受信時
引数にURLを指定すると、そのページに何かしら問い合わせて結果を取得する。
webkit版で相対パスを指定するとindex.htmlからの相対パスのファイルを開くことができる。
//index.htmlの横にあるindex.jsonを開く例
「index.json」をAJAX受信した時には
対象を言う
ここまで
なでしこ3からこのフォルダ(直下のフォルダ)に保存する方法はない(多分)
素材ファイル一覧などのよく差し替えするファイルをなでしこ1で作成して、なでしこ3からはAJAX受信で開くとよさそう。
なでしこ3で読む予定のファイルをなでしこ1で保存するときはUTF8N変換
しておく必要があるのでそこだけ注意。