こんにちは。きんくまです。
AirでSQLite使いたいと思いまして、調べてたらAirRecordという便利ライブラリが見つかりました。
詳しくはこちらです。
>> ADB開発中!Adobe Developer Box 開発日記 連載4) AIRによるActiveRecordの実装 | デベロッパーセンター
で、それをさらにバイナリを扱えるように改良されてました。
>> ActiveRecordは、ByteArrayを保存できない – takanemuのブログ
で、さらにそれを1.2で使えるように修正されていました。
>> ActionScript – AIRでのsqlite環境をActiveRecordパターンにして快適に!ついでにByteArrayを扱えるように。 – Qiita
本当、オープンソースすごいっすね。皆様、ありがとうございますです。
で、もともとはFlex Project用だったみたいなのですが、これをActionScript ProjectにもってくるとArrayCollectionがないよ!というエラーが出ました。
つーか、ArrayCollectionとか知らなかったのですが、Flex用の何かみたいです。
なので、これを使ってある箇所をちょこっとだけ修正したら動いたのでその情報です。
といってもたいしたことはしてなくて
ARModel.asの中にある、
var data:ArrayCollection = new ArrayCollection(result); for each (var record:* in data)
となっている何カ所かを
for each (var record:* in result)
と変えただけです。うーん、これで動いてるのだけど、何かマズいことがおきちゃうんだろうか?
これ載せていいのかどうかわからないけど、上の差分をすべて追っていくと大変だと思うので、
上記差分を全て反映させた現状のAirRecordのソースをおいておきます。自己責任でお願いしますです。
あ、オリジナルから一カ所シンルグトンの箇所でコンパイラの警告が出てしまったので、そこだけキーを文字列にしてしまいました。
小ネタ
全然はなし変わるのですが、sqliteのデバッグの小ネタです。
これは最終的にモバイルで使いたいと思っていて、
その前に、テストでデスクトップ用で使ってました。
そのとき、macの.dbのできるデフォルトのパスは
最新のAIR3.9で、macだと
/Users/ユーザー名/Library/Application Support/アプリケーションid
となってました。
これが現状のバージョンのapp-storage:/アプリケーションidのパスみたい。
少し前のAirのバージョンだと
/Users/ユーザー名/Library/Preferences/アプリケーションid
だったみたいで、ちょっと探してしまった、、。
アプリケーションidは設定用のxmlの中のidで指定したものです。
com.kumade.airrecord.sample.appとかやると、普通のディレクトリではなく、パッケージで表示されました。
なので、Applicationフォルダにあるやつと同じように、右クリして「Show Package Contents」を選択すればその先にすすめて、無事中身をみることができました。
あと、macな人はterminalにsqlite3がすでに入っているので、
terminalで、
cd dbのあるディレクトリ sqlite3 dbファイル名
とかやると、sqliteのシェルモードに切り替わって、クエリがterminal内で書けます。
Air上でデータ追加、terminalでselect * from なんたらとかやると便利でした。
モバイルのときも、iOS Simulatorがmac内にあるので、
/Users/ユーザー名/Library/Application Support/iPhone Simulator/
ここから作られるdbを探せばデバッグしやすいと思われ。
ていう感じです。
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ