Flash Lite 1.1 マリオ待ち受け画像
Flashを使用した携帯用の待ち受け画像を練習がてらに作った。サンプルは上記のQRコードから携帯でご確認ください。
実機での検証はしておりませんのであしからず。
今回のポイント
■時間をフォントではなく0~9までの画像を使用。
■携帯の電波状況によってアクションを加える。
■携帯の電池の状況によってアクションを加える。
■時間によって朝・昼・夜に変える。
■マリオの行動パターンを何種類か作りランダムに表示させる。
新規ファイルからFlashモバイルを選択します。
形式はFlash Lite 1.1です。
現在Flash Liteはバージョン3まであり、
mp4やH.264などの映像にも対応したFlashも作成ができ、
モバイルでの可能性をかなり感じさせてもらえるものになっています。
しかし、まだまだFlash Lite3は最新機種の携帯のみの対応で現状では、
そこまで浸透していないかと思います。
そこで、Flash Lite 2 を使用すればいいかと思うと、そうでもなくドコモは
Flash Lite 2 に対応した機種を出していないそうなのです。
ということで、まだまだFlash Lite 1.1が主流らしいです。間違っていたらすみません。
で今回はFlash Lite 1.1で作成しました。
■ステージサイズ 240×320で作成。
■フレームレート 12fps
変数名・インスタンス名は以下の通り
■as レイヤー 1フレーム目 <総合制御>
hour1._visible = false;
hour2._visible = false;
min1._visible = false;
min2._visible = false;
zimen._visible = false;
//夜用 時・分・地面パーツ 隠す
yhour1._visible = false;
yhour2._visible = false;
ymin1._visible = false;
ymin2._visible = false;
yzimen._visible = false;
//時刻の取得
hh = fscommand2("GetTimeHours");//時の取得
mm = fscommand2("GetTimeMinutes");//分の取得
ss = fscommand2("GetTimeSeconds");//秒の取得
if (6<hh && 16>hh
tellTarget("bg"){//インスタンス名bg内へアクセス
gotoAndPlay("asa");
hour2._visible = true;
min1._visible = true;
min2._visible = true;
zimen._visible = true;
//時
if (hh<=9) {//9時までの場合、頭に0をつける
hour1.num = 0;//時間の十の位
hour2.num = substring(hh, 1, 1);//時間の一の位
} else {//10時以降は、頭に0をつけない
hour1.num = substring(hh, 1, 1);//時間の十の位
hour2.num = substring(hh, 2, 1);//時間の一の位
}
//分
if (mm<=9) {
min1.num = 0;
min2.num = substring(mm, 1, 1);
} else {
min1.num = substring(mm, 1, 1);
min2.num = substring(mm, 2, 1);
}}
//15時から19時までの表示用 夕方
else if(15<hh && 19 >hh
tellTarget("bg"){
}
hour1._visible = true;
hour2._visible = true;
min1._visible = true;
min2._visible = true;
zimen._visible = true;
//時
if (hh<=9) {
hour1.num = 0;
hour2.num = substring(hh, 1, 1);
} else {
hour1.num = substring(hh, 1, 1);
hour2.num = substring(hh, 2, 1);
}
//分
if (mm<=9) {
min1.num = 0;
min2.num = substring(mm, 1, 1);
} else {
min1.num = substring(mm, 1, 1);
min2.num = substring(mm, 2, 1);
}}
//18時以降 夜
else {
yhour1._visible = true;
yhour2._visible = true;
ymin1._visible = true;
ymin2._visible = true;
yzimen._visible = true;
//時
if (hh<=9) {
yhour1.num = 0;
yhour2.num = substring(hh, 1, 1);
} else {
yhour1.num = substring(hh, 1, 1);
yhour2.num = substring(hh, 2, 1);
}
//分
if (mm<=9) {
ymin1.num = 0;
ymin2.num = substring(mm, 1, 1);
} else {
ymin1.num = substring(mm, 1, 1);
ymin2.num = substring(mm, 2, 1);
}
tellTarget("bg"){
gotoAndPlay("yoru");
}
}
timeElapsed2 = getTimer();
if (timeElapsed2>1500) {
// 電波取得
maxsignal = fscommand2("GetMaxSignalLevel");//最大電波強さの取得
signal = fscommand2("GetSignalLevel");//現在の電波状況を取得
//各機種で場合別け
if (maxsignal == 3) {//ドコモのとき
if (signal == 1) { //電波レベルが1の時
denpa = "1"; //変数denpaに文字列を代入
} else if (signal == 2) {//電波レベルが2の時
denpa = "2";
} else if (signal == 3) {//電波レベルが3の時
denpa = "3";
} else {//電波レベルがない時
denpa = "0";
}
} else if (maxsignal == 4) {//AU?の時)
if (signal == 2) {
denpa = "1";
} else if (signal == 3) {
denpa = "2";
} else if (signal == 4) {
denpa = "3";
} else {
denpa = "0";
}
} else {//それ以外(ソフトバンク?の時)
if (signal == 23) {
denpa = "1";
} else if (signal == 31) {
denpa = "2";
} else if (signal == 100) {
denpa = "3";
} else {
denpa = "0";
}
}
//電池残量
battLevel = fscommand2("GetBatteryLevel");
if (battLevel == 0) {
denti = "0";
} else if (battLevel == 1) {
denti = "1";
} else if (battLevel == 2) {
denti = "2";
} else {
denti = "3";
}
battSpot = fscommand2("GetPowerSource");//外部電源との接続
if (battSpot == 1) {
tellTarget ("power") {
gotoAndPlay("start");
}
} else if (battSpot == 0) {
tellTarget ("power") {
gotoAndPlay("normal");
}
} else {
tellTarget ("power") {
gotoAndPlay("normal");
}
}
}
//曜日取得(日曜0~土曜6と数字で返されるので、好きな文字列に変換する)
weekday = fscommand2("GetDateWeekday");
if(weekday==0){
w="[ sun ]";
}else if(weekday==1){
w="[ mon ]";
}else if(weekday==2){
w="[ tue ]";
}else if(weekday==3){
w="[ wed ]";
}else if(weekday==4){
w="[ thu ]";
}else if(weekday==5){
w="[ fri ]";
}else{
w="[ sat ]";
}
//年月日の取得
year = fscommand2("GetDateYear");//年の取得
yy = year;
month=fscommand2("GetDateMonth");//月の取得
if( month<10){
month = String(month);
month = "0" add month;
}
mm = month;
today=fscommand2("GetDateDay");//日にちの取得
if( today<10){
today = String(today);
today = "0" add today;
}
tt = today;
ye = yy add "/" add mm add "/" add tt;
■as レイヤー 2フレーム目 <ループ用>
■画像を使用した時計を作る場合(レイヤー名hiru・yoru内)
1. 0~9までの数字の画像を作る。
2. それぞれグラフィックとして個別にシンボルに変換。
3. 新規ムービークリップを作成。
4. 作成した数字0~9のシンボルを1~10フレームに配置
この際、1フレームから1の数字、2・・・・というように10フレームに0の数字のシンボルを配置。
5.レイヤーを追加し、1から10フレームまで個別にスクリプトを打つ。
switch (num) {
case "0" :
gotoAndPlay(10);
break;
case "1" :
gotoAndPlay(1);
break;
case "2" :
gotoAndPlay(2);
break;
case "3" :
gotoAndPlay(3);
break;
case "4" :
gotoAndPlay(4);
break;
case "5" :
gotoAndPlay(5);
break;
case "6" :
gotoAndPlay(6);
break;
case "7" :
gotoAndPlay(7);
break; case "8" :
gotoAndPlay(8);
break;
case "9" :
gotoAndPlay(9);
break;
}
かなり曖昧ですがざっと書きました。