イナヅマTVログ

AIR for iOS, 加速度センサー Accelerometerインスタンスはローカル変数にしちゃダメ

| 0件のコメント

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

コメントを残す

必須欄は * がついています


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください