Flash:ANEの作成-NSUserDefaultsの実装
2012/10/28
category: Flash | tag: ActionScript, AIR, ANE, iPhone, SharedObject | no comments
ここ数日、AIR用のNativeExtension(iOS向け)の作成方法について調べていました。
目的は「AIRアプリにAdmobを実装する」こと。
AdmobのANEは、ウェブを検索すれば、有料/無料ともに幾つか見つかります。
無料のものを幾つか試してみたのですが、残念ながら自分が必要としているイベントを拾えませんでした。
今後の事も考えて、自作の道を選んでみました。
手始めに
- ANEへ値を渡す
- ANEから値を受け取る
を試すため、NSUserDefaultsをラップしたANEを作ってみました。
作成したANEファイルとサンプルコードを以下に掲載します。
※ どうやって作ったかは、後日まとめる予定
ANEファイル:
UserDefaultsExtension.ane (rev.1.0.0)
本ANEファイルを使用して発生するいかなる問題も責任は負いかねます。ご自身の責任のもとで使用してください。
「整数(Integer)」「文字列(String)」のみ対応しています。
使い方はサンプルコードを参照してください。
サンプルコード:
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 31 32 33 34 35 36 37 38 39 |
package { import com.narudesign.UserDefaultsExtension; import flash.display.Sprite; public class UserDefaultsExtension_TEST extends Sprite { public function UserDefaultsExtension_TEST() { super(); var aStr:String; var aInt:int; aStr = UserDefaultsExtension.getStringForKey("StrValue"); aInt = UserDefaultsExtension.getIntegerForKey("IntValue"); trace("***** before set"); trace("getStringForKey('StrValue') :", aStr); trace("getIntegerForKey('IntValue') :", aInt); trace("***** set"); trace("setStringForKey('StrValue', 'StringData1')"); trace("setIntegerForKey('IntValue', 54321)"); UserDefaultsExtension.setStringForKey("StrValue", "StringData1"); UserDefaultsExtension.setIntegerForKey("IntValue", 54321); UserDefaultsExtension.synchronize(); aStr = UserDefaultsExtension.getStringForKey("StrValue"); aInt = UserDefaultsExtension.getIntegerForKey("IntValue"); trace("***** after set"); trace("getStringForKey('StrValue') :", aStr); trace("getIntegerForKey('IntValue') :", aInt); } } } |
実行結果:
Flash Builderのコンソールには以下のように表示されます。
***** before set
getStringForKey(‘StrValue’) : null
getIntegerForKey(‘IntValue’) : 0
***** set
setStringForKey(‘StrValue’, ‘StringData1’)
setIntegerForKey(‘IntValue’, 54321)
***** after set
getStringForKey(‘StrValue’) : StringData1
getIntegerForKey(‘IntValue’) : 54321
また、XcodeのOrganizerを使って
AppData/Library/Preferences
フォルダ内に、以下のようなファイルが生成され、値が書き込まれていることを確認しました。
1 2 3 4 5 6 7 8 9 10 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>IntValue</key> <integer>54321</integer> <key>StrValue</key> <string>StringData1</string> </dict> </plist> |
コメントを残す
コメントを投稿するにはログインしてください。