AIR for iOS で加速度センサーを作ろうとしてハマった時のメモ。
加速度センサー作成はflash.sensors.Accelerometer
で作成可能です。
マニュアルによれば以下のコードで実現可能です。
http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/sensors/Accelerometer.html
var acc1:Accelerometer = new Accelerometer(); acc1.addEventListener(AccelerometerEvent.UPDATE, updateHandler); function updateHandler(evt:AccelerometerEvent):void { trace(evt); } |
とても単純なコードのはずなのにupdateHandler
がプロジェクトによって反応したり反応しなかったりで違いが分からずかなりハマってしまいました。
よくよく見るとAccelerometer
インスタンスをローカル変数としているプロジェクトのイベントハンドラが反応していないことが分かりました。
Accelerometer
インスタンスはprivate
でも構わないのでクラス変数にしないといけないようです。
なんでなんだろう?
【環境】Flash Builder 4.5 + Flex SDK 4.5.1 + AIR 2.7