2015年4月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« MOONPhase v.2.10.0 対応 | トップページ | ストローク編集シールに、「細字」コマンドを追加 »

2014年8月24日 (日)

遂に、コピペシールが update できました/v.2.10.0 の (?) storage 機能

「コピペシール」の update

去年作った「手書きコピペシール」 なのですが、MOONPhase v.2.9.0 に version up された時点で、info.json 周りの扱いと仕様が変わってしまって、v.2.9.0 対応できなくなってしまいました。

(過去記事:「peperJSON/strokeJSON の罠? 謎? 仕様? バグ?」 参照)

今回の v.2.10.0 への version up で、このあたりが地味に直ってます。おかげでとうとうコピペシールが update できました。

MOONPhase v.2.10.0 対応版「手書きコピペシール」をダウンロード

直った/直せたところ

まず、過去記事 に書いた、「MOON.getPaperJSON() の返り値に clip 属性が含まれていません」とという問題が直ってます。

また、「背景サイズが変えられない」と書きましたが、paperJSON.width, paperJSON.height に設定した値が正常に(!)反映されます。

.width, .height, .clip を変更することで、シールのサイズを変更することができるようになりました。

シール側のコードで直したのはこれくらいで、ほんの数行なのですが、システム側の改修は結構大変だったのではないかと思います。地味に前に進んでますね。

v.2.10.0 の (?) storage 機能

先週、普段使っていない Gmail を開いてみると、Issue tracker からの連絡/回答がいくつもきていました。お盆に結構返信があったんですよね。

で、そこにいくつか興味深い情報が。もしかすると v.2.9.0 から実装されていて、表に出てなかっただけなのかもしれませんが、今回 v.2.10.0 での MOONBlock の新機能と直接関係しているので、多分、v.2.10.0 の新機能なのだと思っています。

Issue tracker #148 の reply の中に、

確認また回答が遅くなり申し訳ございません。

ご要望頂いている任意の情報の保存について、
stickerStorage APIを使用する事でシールの情報の保持が可能となっています。

-----
保存:
stickerStorage.setItem("key", "value")

読込:
var value = stickerStorage.getItem("key")

保持している情報はシールのフォルダの
「storage.json」ファイルに保存されます。

という情報がありました。

また、Issue tracker #235 には

ご要望として頂いています、
「新しい属性のとして文字列の追加について」追記します。

info.jsonではなく、
stickerStorage, localStorage, pageStorageを使用する事で、
文字列属性の保存は対応可能となっています。

(e.g.
-----
stickerStorage.setItem("key", "value")
var value = stickerStorage.getItem("key")
-----

という情報があります。

試してみました。まず、"pageStorage" というのは "noteStorage" の間違いのようで

  • stickerStorage : そのシールからだけアクセスできる storage
  • localStroage : そのページの全シールからアクセスできる storage
  • noteStorage : そのノート全体の全ページの全シールからアクセスできる storage

のようです。

まだ使い道を思いつきませんが、面白そうです。ちなみに MOONBlock のヘルプ にある、ロードブロック、セーブブロック、セーブデータ確認ブロック、セーブデータ消去ブロック、がそのままこの機能を使っているのだと思われますから、直接 javascript を操らなくても利用できるはずです。

で、その実体としては、localStorage は、ページのフォルダの下に storage.json というファイルがあって、その中に情報が格納されています。

noteStorage は予想通りで、MyNotebook1 フォルダの下に、storage.json というファイルが作成されます。

今のところわからないのが、stickerStorage. Issue tracker の情報では、『シールのフォルダの「storage.json」ファイルに保存されます』とありますし、他の 2 つの storage.json の存在を考えると、これが一番自然なのですが・・・。

シールのフォルダには storage.json が見つからないんですよ !!!

それでも、stickerStorage.setItem(), stickerStorage.getItem() は正常に動作するので、使う分には問題ないんですが・・・。

この件、どうなってるのか分かった方がいれば、ぜひ教えてください。

« MOONPhase v.2.10.0 対応 | トップページ | ストローク編集シールに、「細字」コマンドを追加 »

enchantMOON」カテゴリの記事

コメント

>シールのフォルダには storage.json が見つからないんですよ !!!

予想の範疇を出ないのですが、

enchantMOONのOSは、オンチップのストレージ上にインストールされていると思われるのですが、
そのストレージ内には、裏蓋を開ければ交換可能なmicroSDの階層と同じファルダがあり、
storage.json はそこに配置されていると思います。

enchantMOONの起動時やUSB接続を解除する時に、何かのチェックを行っているのは、
交換可能なmicroSDとの階層の差異を調べて必要に応じて storage.json を作ったり削除したりしているのだと思います。


最終(?)バージョンのOSにupしましたので、
チョコチョコとシール作りを再開したいと思ってます。

 giee さん、コメントありがとうございます。

 なるほど、そういう可能性があるのですか。いずれにしても、stickerStorage に対する読み書きが成立するにも関わらず、microSD 上に file が確認できないので、情報はなんらかの形で、広義の「システムメモリー」上に存在するわけですよね。

 ただ、まだ着と確認はとれていないのですが、先日 MOONPhase v.3.0 でちょっと試してみた範囲では、onAttach で stickerStorage に書き込んだ情報が、onTap では読めないような挙動があり、情報が永続化されないのであれば file に書き出さずに on memory でも間に合うのかもしれません。

 また、何か情報確認できれば、ぜひ教えていただけるか、WiKi にでも書き込みお願いします。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1527616/57175841

この記事へのトラックバック一覧です: 遂に、コピペシールが update できました/v.2.10.0 の (?) storage 機能:

« MOONPhase v.2.10.0 対応 | トップページ | ストローク編集シールに、「細字」コマンドを追加 »