Flashメニュー制作 Tips
&size(x-small){&color(blue){Written by mio}}
必要なもの
愛と勇気・・・・・・ではなくて。
Flashでメニューを作る場合「Flash Lite 1.1」という形式で出力する必要があります。
そのために必要なソフトは
Flashでメニューを作る場合「Flash Lite 1.1」という形式で出力する必要があります。
そのために必要なソフトは
- Macromedia Flash MX professional 2004
- Flash Professional 8
が必要になります、これにFlash LiteのSDKを追加すると携帯向けFlashの制作が出来るようになります。
Flash Liteについての詳細は以下のサイトをご覧下さい
Macromedia - Flash Lite>http://www.adobe.com/jp/products/flashlite/?
Flash Liteについての詳細は以下のサイトをご覧下さい
Macromedia - Flash Lite>http://www.adobe.com/jp/products/flashlite/?
とりあえずはアドビのサイトで体験版がDL出来るのでそれを試してみると良いでしょう
アドビFlash Professional 8体験版DLページ>http://www.adobe.com/go/tryflashpro_jp?
ちなみにFlash Professional 8で対応しているLite 2ではニュースフラッシュから天気情報を取得したり出来るようです。
アドビFlash Professional 8体験版DLページ>http://www.adobe.com/go/tryflashpro_jp?
ちなみにFlash Professional 8で対応しているLite 2ではニュースフラッシュから天気情報を取得したり出来るようです。
Launchコマンドについて
MEDIA SKINのメニュー用LaunchコマンドはW51Kと同じで以下のようになります。
[コマンド]=[機能]
infrared=赤外線
camera=カメラ
memorycard=microSD
felica=EZ FeliCa
aumediatuner=TV/EZ・FM
df=データフォルダ
htmlviewer=PCサイトビューア
musicplayer=au Music Player
accessories=アクセサリ
hellomessenger=HelloMessenger
M=機能
calendar=カレンダー
M#=ガイド(M#)
M0=プロフィール(M0)
M1=M1(時間/料金/申込)
M2=M2(音/バイブ)
M3=M3(画面表示)
M4=M4(プライバシー)
M5=M5(文字入力)
M6=M6(ユーザー補助)
M7=M7(時計)
M8=M8(ネットワークサービス)
M9=M9(データ通信)
Fioraで使えるのは上記のコマンドです。
[コマンド]=[機能]
infrared=赤外線
camera=カメラ
memorycard=microSD
felica=EZ FeliCa
aumediatuner=TV/EZ・FM
df=データフォルダ
htmlviewer=PCサイトビューア
musicplayer=au Music Player
accessories=アクセサリ
hellomessenger=HelloMessenger
M=機能
calendar=カレンダー
M#=ガイド(M#)
M0=プロフィール(M0)
M1=M1(時間/料金/申込)
M2=M2(音/バイブ)
M3=M3(画面表示)
M4=M4(プライバシー)
M5=M5(文字入力)
M6=M6(ユーザー補助)
M7=M7(時計)
M8=M8(ネットワークサービス)
M9=M9(データ通信)
Fioraで使えるのは上記のコマンドです。
ランチコマンドについて(追加)
どうやら上記以外にも「alarm」「core/eznaviwalk」なども使えるようです。
というわけで検証用メニューを作って検証(という名の総当たり戦です思いついたもの片っ端から試してますw)したところ
現時点で以下のコマンドも使えることを確認しました(3/27現在)。
alarm=アラーム
core/eznaviwalk=EZナビウォーク起動
notebook=メモ帳
history=着信履歴
fmradio=EZ・FM
photo=カメラ(直接起動)
qr=二次元バーコードリーダー(直接起動)
です。
私も随時検証していきますが、もし新しいコマンドを発見したら是非こちらまでご一報を。よろしくお願いします。
というわけで検証用メニューを作って検証(という名の総当たり戦です思いついたもの片っ端から試してますw)したところ
現時点で以下のコマンドも使えることを確認しました(3/27現在)。
alarm=アラーム
core/eznaviwalk=EZナビウォーク起動
notebook=メモ帳
history=着信履歴
fmradio=EZ・FM
photo=カメラ(直接起動)
qr=二次元バーコードリーダー(直接起動)
です。
私も随時検証していきますが、もし新しいコマンドを発見したら是非こちらまでご一報を。よろしくお願いします。
フォーカスの記憶
フォーカスの記憶とは、たとえばデータフォルダを開いてクリアボタンで戻る(終話ボタンだとダメです)とメニューのフォーカスがデータフォルダのままになっていることです。
この機能がないとメニューに戻ってもフォーカスがデフォルト位置(動作確認用の場合「テレビ/ラジオ」)に戻ってしまいます。
で、一般的には("Savefocus")・("RetrieveFocus")を使うんですがMEDIA SKINだとこれが動きません。
そこで以下のようなコマンドを書きます
まず最初のフレームに以下のコマンドを書きましょう。
この機能がないとメニューに戻ってもフォーカスがデフォルト位置(動作確認用の場合「テレビ/ラジオ」)に戻ってしまいます。
で、一般的には("Savefocus")・("RetrieveFocus")を使うんですがMEDIA SKINだとこれが動きません。
そこで以下のようなコマンドを書きます
まず最初のフレームに以下のコマンドを書きましょう。
status = fscommand2("Get", "Mainmenu", "Position", "framenum");
if (status != 0)
{
gotoAndStop(framenum);
}
else
{
if (status != 0)
{
gotoAndStop(framenum);
}
else
{
gotoAndStop(2);
} //もしframenumに値が入っていればそのフレーム番号に、無ければ2フレーム目に飛ぶという条件分岐です。
} //もしframenumに値が入っていればそのフレーム番号に、無ければ2フレーム目に飛ぶという条件分岐です。
次に各機能起動時(普通は「on (keyPress "<Enter>")」に当ててるかな)に以下のコマンドが走るように記述
framenum = (現在のフレーム); //2フレーム目なら2、3フレーム目なら3を
fscommand2("Set", "Mainmenu", "Position", framenum); //ここで記憶させます
fscommand2("Set", "Mainmenu", "Position", framenum); //ここで記憶させます
ex)10フレーム目でaMPを決定ボタンで起動させる場合です
on (keyPress "<Enter>"){
framenum = 10;
fscommand2("Set", "Mainmenu", "Position", framenum);
fscommand("Launch", "musicplayer");
}
framenum = 10;
fscommand2("Set", "Mainmenu", "Position", framenum);
fscommand("Launch", "musicplayer");
}
これでフォーカスの記憶が出来るはずです。
キー入力について
実はtalby promptのMEDIA SKIN版を作ろうとして気づいたのですが、
1~0・#キーを押すと強制的に機能のショートカット(メニュー画面で2を押すと「音/バイブ」のメニューに飛びます)が実行されてしまうようです。
通常は、サンプルにもあるとおり「on (KeyPress "")」で数字キーを押した時の動作を指定してやります。
なのでMEDIA SKINではメニューの操作には十字キー(Left/Right/Up/Down)と決定ボタン(Enter)しか使えないようです。ご注意を。
1~0・#キーを押すと強制的に機能のショートカット(メニュー画面で2を押すと「音/バイブ」のメニューに飛びます)が実行されてしまうようです。
通常は、サンプルにもあるとおり「on (KeyPress "")」で数字キーを押した時の動作を指定してやります。
なのでMEDIA SKINではメニューの操作には十字キー(Left/Right/Up/Down)と決定ボタン(Enter)しか使えないようです。ご注意を。
カレンダーを動かす
これは意外と簡単で、たった一行のスクリプトで出来ます
- まずは日付を表示したいところにダイナミックテキストを配置します。そしてその変数をtodayにします
そしてそのフレームに次のスクリプトを記入します
today = fscommand2("GetDateDay");
これで先ほど作ったダイナミックテキストに日付が表示されます(ただし一桁の数字の頭に0は付きません1~31と表示されます)。
では、一桁の日付のとき、頭に0を追加しましょう。
流れとしては、取得した日付が10未満だったときに0を追加するように条件文を書けばOKです
では、一桁の日付のとき、頭に0を追加しましょう。
流れとしては、取得した日付が10未満だったときに0を追加するように条件文を書けばOKです
if (today < 10) {
today = "0" add today //「add」は連結するという意味の演算子です、"0"は0が数字ではなく文字ですよという宣言です。
}
today = "0" add today //「add」は連結するという意味の演算子です、"0"は0が数字ではなく文字ですよという宣言です。
}
これで「01、02、03・・・・・・」と表示されるはずです。
(このやり方は時間の表示などにも応用できますね)
(このやり方は時間の表示などにも応用できますね)
曜日を表示する
これはちょっと複雑になりますがFlashでは曜日を「日曜=0、月曜=1、・・・、土曜=6」と数字で返してきます。
ですのでこれを変換してやる必要があります。まぁまずはスクリプトを見てください。
ですのでこれを変換してやる必要があります。まぁまずはスクリプトを見てください。
wd = fscommand2("GetDateWeekday"); //曜日を取得します(ただし0~6の数字でしか取得できません)、今回はwdという変数に代入しました
if (wd eq 0) { //変数wdが0だった場合(つまり日曜日だったとき)
if (wd eq 0) { //変数wdが0だった場合(つまり日曜日だったとき)
d = "Sunday"; //変数dにSundayという文字列を代入します
} else if (wd eq 1) {
d = "Monday";
} else if (wd eq 2) {
d = "Tuesday";
} else if (wd eq 3) {
d = "Wednesday";
} else if (wd eq 4) {
d = "Thursday";
} else if (wd eq 5) {
d = "Friday";
} else if (wd eq 6) {
d = "Saturday";
}
これでステージ上にダイナミックテキストを変数dで配置すれば曜日に応じて「Sunday」や「Monday」と表示されます。
時間の取得
これは基本的に日付と同じで以下のようなスクリプトになります
hur = fscommand2( "GetTimeHours" );
min = fscommand2( "GetTimeMinutes" );
sec = fscommand2( "GetTimeSeconds" );
min = fscommand2( "GetTimeMinutes" );
sec = fscommand2( "GetTimeSeconds" );
これで変数hurに時、変数minに分、変数secに秒がそれぞれ代入されます(例のごとく頭に0は付きません)
サンプル
そんなたいしたものではないですが、「動作確認用」のFlaファイルをおいておきます。役に立つかどうかは知りませんよ。
menucopy.zip>http://flip-f.xrea.jp/fla/menucopy.zip?
menucopy.zip>http://flip-f.xrea.jp/fla/menucopy.zip?
感想・要望・連絡用コメント欄
- はじめまして。&br()Launchコマンドですが、&br()diary=絵日記&br()を確認しましたので連携します。&br()(あまり使用しないかも知れませんが・・・。) -- (iida11) &size(80%){2007-07-28 18:52:40} @wikiへ
- 初めまして。&br()Fioraを使わずにflash8のみで&br()MEDIA SKIN用のメニューを作る事は可能なんでしょうか? -- (bako) &size(80%){2007-06-20 19:14:15}
- Launchコマンドですが、&br()movie=ムービー&br()も使えるみたいですね。&br()E-Mail、C-Mail を起動するコマンドはないのでしょうか…? -- (名無しさん) &size(80%){2007-05-10 00:41:33}
&color(blue){Written by mio}
添付ファイル