SHARP系端末(931SH、932SHなど)でFLASH上でDateクラスを利用すると使い方によっては値がおかしくなってしまうみたいです。
現在時刻を
var d:Date = new Date();
のように取得する分には問題ないのですが、日付指定で例えば
var d:Date = new Date(2008, 1, 10);
と入力すると、実際の値は一ヶ月ほど未来に進んでしまっているようです。(どの日付指定がおかしくなるのかは特定できませんが...)
これはDataクラスのsetYearなどのメソッドを使っても同じ現象が起こります。
ただし、setTimeは例外のようで、ここで通常の使用どおり引数にミリ秒を指定すると正しいDateインスタンスが生成されます。ミリ秒は1970年1月1日からの経過ミリ秒ですが、もちろんこのミリ秒を求めるために
var d1:Date = new Date(2008, 1, 10);
var d2:Date = new Date();
d2.setTime(d1.getTime());
とやってしまっては意味がないので経過ミリ秒を自力で計算する必要があります。
計算はちょっとめんどくさそうですが、閏年に気をつければそれほど難しくはないでしょう。
ちなみに閏年の判定は以下の通り
function isUruudoshi(year:Number):Boolean
{
return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
}
FLASH上でアニメーションをさせるときは
「アニメーション対象のMCはなるべく小さく」
がいいです。
特に931SHのような高解像度の端末ではアニメーションのパフォーマンスが極端に違ってきます。
「画面全体をスライドさせる」とかやらないほうが吉ですね。
swgtファイルも拡張子をzipにして一般的な解凍ソフトで中身を取り出すことが出来ますが、
その中身のconfig.xmlは署名した際に微妙に書き換えられているので注意が必要です。
具体的には<secureid>というタグが追加されてます。
これに気付かずに中身をwgtにまとめて再び署名したりするとsecureidが被って多分おかしくなります。
swgtをインストールするときに「コンテンツに問題があり・・」と表示された場合は確認してみてください。
JavaScriptで実装中、エラーが起こってもエミュレータは何も通知してくれないので
どこで不具合が起きているかを自分で突き止めなくてはいけません。
そんなときにお手軽なデバッグ方法としてwidget.openURL()を使う方法があります。
こいつは本来はブラウザを立ち上げる際のURLを指定するものなのですが、
エミュレータ上で実行するとポップアップが出てきてその飛び先URLを
表示してくれるのでそいつを利用してしまいます。
使い方は単純に引数にデバッグ用の文字列を入れるだけです。
JavaScriptのalert()的な感覚で使うことが出来ます。
エミュレータのプロジェクト設定(プロジェクトタブ)でTrusted: Third PartyをONにします。
GPSに限らず署名が必要な機能はこれで働きます。
これをやらずにwidget.location.update()とかやっても反応はないです。
そのわりにTrusted: Third Party ONの設定は保存できるわけではないので
たまに原因がわからず混乱します・・・