docomo新機種で電池残量まわりの仕様変更

ドコモ2009年夏新機種(一部除く)から、
fscommand2(“GetBatteryLevel”);
で返ってくる電池残量の値が3段階→100段階に変更になっていました。
以下対応のためのサンプルコード。

旧機種と表示を共通化する場合(既存の待ち受けflash等の場合)

最大電池残量(MaxBatteryLevel)が100だった場合、3段階にあてはめるASを書いて共通化します。

mxbt = fscommand2("GetMaxBatteryLevel"); //電池の最大値を取得
bt = fscommand2("GetBatteryLevel"); //現在の電池残量を取得
if (mxbt == 100) { //電池の最大値が100段階だった場合
if (bt>60) {bt = 3;} //残量100~61の場合、電池残量は3とする
else if (bt>20) {bt = 2;} //残量60~21の場合、電池残量は2とする
else if (bt>0) {bt = 1;} //残量20~1の場合、電池残量は1とする
}

3段階と100段階で表示を分ける場合

MaxBatteryLevelが100だった場合と、3だった場合で条件式(if)を書いて分岐させます。
このサンプルでは、100段階の電池を20段階ずつで5つのフレームに飛ばします。

mxbt = fscommand2("GetMaxBatteryLevel"); //電池の最大値を取得
bt = fscommand2("GetBatteryLevel"); //現在の電池残量を取得
if (mxbt == 100) { //電池の最大値が100段階だった場合
if (bt>80) {gotoAndStop(2);} //残量100~81の場合、2フレーム目で停止
else if (bt>60) {gotoAndStop(3);} //残量80~61の場合、3フレーム目で停止
else if (bt>40) {gotoAndStop(4);} //残量60~41の場合、4フレーム目で停止
else if (bt>20) {gotoAndStop(5);} //残量40~21の場合、5フレーム目で停止
else if (bt>0) {gotoAndStop(6);} //残量20~1の場合、6フレーム目で停止
}
else if (mxbt == 3) { //電池の最大値が3段階だった場合
if (bt>2) {gotoAndStop(7);} //残量3の場合、7フレーム目で停止
else if (bt>1) {gotoAndStop(8);} //残量2の場合、8フレーム目で停止
else if (bt>0) {gotoAndStop(9);} //残量1の場合、9フレーム目で停止
}