Tutorialチュートリアル
スマートフォンの傾きを取得するには
スマートフォンの傾きを取得するには、加速度センサーAPI(Accelerometer)を使用します。
加速度の取得は、呼び出した瞬間の加速度を取得するAPI applican.accelerometer.getCurrentAcceleration() と、加速度を継続的に取得するAPI applican.accelerometer.watchAcceleration() の2種類があります。(得られる数値の単位は m/sec^2)
継続的に加速度を取得する場合 watcher の固有ID(intervalID) が watchAcceleration() の戻り値として返ります。加速度取得を中止したい場合は、このwatcherの固有ID(intervalID)を clearWatch() の引数として渡します。
現在の加速度の値を一度だけ取得する場合のサンプル
<a href="javascript:void(0)" onClick="getCurrentAcceleration();return false;">加速度取得</a>
<br>
<textarea id="result" rows="6" cols="30"></textarea>
<script type="text/javascript" charset="utf-8"><!--
function getCurrentAcceleration(){
applican.accelerometer.getCurrentAcceleration( onSuccess, onError);
}
function onSuccess( result ){
var dump="Success\n";
dump += "X-axis:" + result.x + "\n";
dump += "Y-axis:" + result.y + "\n";
dump += "Z-axis:" + result.z + "\n";
dump += "timestamp:" + result.timestamp + "\n";
document.getElementById("result").value=dump;
}
function onError(){
document.getElementById("result").value="Error";
}
// -->
</script>
加速度の値を継続的に取得する場合のサンプル
<a href="javascript:void(0)" onClick="startWatchAcceleration();return false;">加速度取得</a>
<br>
<textarea id="result" rows="6" cols="30"></textarea>
<br>
<a href="javascript:void(0)" onClick="stopWatchAcceleration();return false;">加速度取得停止</a>
<br>
<script type="text/javascript" charset="utf-8"><!--
var _accelerationWatchID;
function startWatchAcceleration(){
var options = { frequency: 100 };
_accelerationWatchID = applican.accelerometer.watchAcceleration( onSuccess, onError, options);
}
function onSuccess( result ){
var dump="Success\n";
dump += "X-axis:" + result.x + "\n";
dump += "Y-axis:" + result.y + "\n";
dump += "Z-axis:" + result.z + "\n";
dump += "timestamp:" + result.timestamp + "\n";
document.getElementById("result").value=dump;
}
function onError(){
document.getElementById("result").value="Error";
}
function stopWatchAcceleration(){
applican.accelerometer.clearWatch( _accelerationWatchID );
document.getElementById("result").value="Stop";
}
// -->
</script>