携帯Flashの作製方法 メニューアイコン作製方法(au)

なんだか各方面から突かれたんで、頑張って書いてみますです。

え〜っと、携帯のメニューアイコン作製はFlashで作る前にクリアしないといけない発動条件(by HUNTERxHUNTER)があります。

まずは作ったアイコンを自分のサイトなり何なりに上げて落とさせる時に、「disposition」というパラメーターにその携帯固有の数値を入れてあげないと、 携帯側でメニューアイコンという認識がされません。なのでまずこのパラメーターをゲットする必要があります。この数値、auは一応公開しているんだが、 一般ピーポル向けではなかったりする。何だよメ〜ン!と思うかもしれないが、この情報社会、netの海にgoogle先生を放ってあげればイイもん拾ってくるでしょう。

MIME-Typeとdispositionとか…

一個目の発動条件が「disposition」、そして二個目は…「launchパラメーター」ってやつです。携帯のメニューではフォーカス位置でボタンを押した時に「この機能を起動してちょ」という ように、機能一つ一つにlaunchパラメーターってのが存在するんで、それをゲットしないとかなり意味のないメニューになってしまう。

これまたこのlaunchパラメーター、auは一応公開しているんだが、一般ピッポル向けではなかったりする。さすがにこのサイトで教える訳には(大人の事情で)いかないので、 なんとか頑張ってみてください。「叩け、さらば開かれん」って言葉もあることだし…。申し訳ないです。。

という訳で、以後はこの「launchパラメーター」が分かっているというコトを前提として話しを進めていきますのでご了承ください。

ほんじゃま、アイコンメニュー作製方法なんですが、アイコンメニューは大まかに分けて2種類ありますです。縦型のメニューと3x4のメニュー。 とりあえず今回は3x4のメニューを作ってみます。

11-1

流れとしては方向キーとエンターキーを押した時のアクションを書いたボタンオブジェクトを作る。数字キーを押した時のアクションを書いたボタンを作る。 それをタイムライン上に配置。メニューっぽいデザインを組み込む。書き出し。で終了です。一つのメニューに対して1フレームを使用することになるんで、 タイムラインの構成はこのようになります。

11-2

SONYの端末のように、メニューが階層構造になっていると、タイムラインが増えることになるのですが、それはまた後ほど…。

ではまず最初に、「機能ボタン赤(方向、決定)」とかいう名前でレイヤーを作り、13フレーム目までを全てキーフレームにします。1フレーム目にはフレームアクションとして…

/* ----直前までのメニュー位置を呼び出し---- */
fscommand2("Get", "Mainmenu", "Position", "FrameName");
gotoAndStop(FrameName);

のスクリプトを書きます。"Get"によって直前までのメニューのFrameNameを取得し、そのフレームに飛ばします。

ここで注意点ですが、fscommand2で取得する"Mainmenu"ですが、三洋端末やSONY端末の場合はここを"MainMenu"とMenuの頭を大文字にしてください。 そうしないとメニューを起動した後でクリアキーで戻った時に、戻り先のタイムラインの位置を保存できなくなって、毎回初期フォーカス位置に戻ってしまいます。 またここの記述の仕方は各端末メーカーによって異なります。カシオや日立、三洋(最新の端末はまた違うみたいです)は上記のままで大丈夫ですが、 ソニーや東芝などは記述がかわります。

次に「機能(赤)」とかいう名前でボタンオブジェクトを作り、残りの2〜13フレーム目までの全てのフレームに配置します。そのボタンにボタンアクションとして…

/* ----方向キー・決定キー押下時---- */
//上
on (keyPress "<Up>") {
	gotoAndStop("○○");
}
//下
on (keyPress "<Down>") {
	gotoAndStop("○○");
}
//左
on (keyPress "<Left>") {
	gotoAndStop("○○");
}
//右
on (keyPress "<Right>") {
	gotoAndStop("○○");
}
//決定キー
on (keyPress "<Enter>") {
	fscommand("Launch", "■■■");
}

のスクリプトを書きます。○○にはそれぞれ上下左右のキーを押した時の飛び先のフレーム名を入れてください。フレーム名は基本的にlaunchパラメーターの値を入れておくのが 混乱しなくていいです。決定キーの ■■■には決定キーを押した時に起動する機能のlaunchパラメーターが入ります。メニューの移動は下の図のようになりますので、右下のメニューからは下、右を押した場合は左上に、左上のメニューからは 上と左を押した場合に右下に移動するようにします。

11-4

SONYや三洋の場合は決定キーのアクション「fscommand("Launch", "■■■");」の前に

//決定キー
on (keyPress "<Enter>") {
	fscommand2("set","Mainmenu","Position",this_currentframe)
	fscommand("Launch", "■■■");
}

と一行新たなActionScriptが入ります。同じ様に東芝の場合は…

//決定キー
on (keyPress "<Enter>") {
	fscommand2("set","Mainmenu","Position","○")
	fscommand("Launch", "■■■");
}

というActionScriptが入ります。○の中にはそのフレームの番号を入れてください。

そしたら次は「機能(緑)」という名前のボタンオブジェクトを作り、「機能ボタン緑(数字キー)」というレイヤーを作って2フレーム目に配置します。数字キーを押下した時のアクションは 全てのフレームに共通なんで、配置するのは2フレーム目だけで大丈夫です。で、このボタンにボタンアクションとして…

11-3
/* ----数字キー押下のアクション---- */
on (keyPress "1") {
    m = 1;
    gotoAndPlay("function");
}
on (keyPress "2") {
    m = 2;
    gotoAndPlay("function");
}
on (keyPress "3") {
    m = 3;
    gotoAndPlay("function");
}
on (keyPress "4") {
    m = 4;
    gotoAndPlay("function");
}
on (keyPress "5") {
    m = 5;
    gotoAndPlay("function");
}
on (keyPress "0") {
    m = 0;
    gotoAndPlay("function");
}
on (keyPress "#") {
    m = 8;
    gotoAndPlay("function");
}
on (keyPress "a") {
    fscommand("Launch", "clear");
}
on (keyPress "e") {
    fscommand("Launch", "clear");
}

のスクリプトが入ります。そして14フレーム目に数字キーそれぞれに対応したlaunchパラメーターの値と、クリアボタン押下時の戻り先として「機能設定メニュー」への指定をしてあげないと いけないので、フレームアクションとして…

/* ----数字キー押下時まとめて処理---- */
// 「機能」のフレーム番号を記憶する
fscommand2("Set", "MainMenu", "Position", "○");
if (m == 1) {
    m = 10;
    fscommand("launch", "▲▲");
	gotoAndStop("■■");
}
else if (m == 2) {
    m = 10;
    fscommand("launch", "▲▲");
	gotoAndStop("■■");
}
else if (m == 3) {
    m = 10;
    fscommand("launch", "▲▲");
	gotoAndStop("■■");
}
else if (m == 4) {
    m = 10;
    fscommand("launch", "▲▲");
	gotoAndStop("■■");
}
else if (m == 5) {
    m = 10;
    fscommand("launch", "▲▲");
	gotoAndStop("■■");
}
else if (m == 0) {
    m = 10;
    fscommand("launch", "▲▲");
	gotoAndStop("■■");
}
else if (m == 7) {
    m = 10;
	gotoAndStop("■■");
}
else if (m == 8) {
    m = 10;
    fscommand("launch", "▲▲");
    gotoAndStop("■■");
}
else {
    gotoAndStop("■■");
}

というスクリプトが入ります。○には機能設定のメニューがあるフレーム番号、▲▲には数字キーに対応している機能のlaunchパラメーターの値、■■には 機能設定のlaunchパラメーターの値が入ります。fscommand2で取得するMainMenuの大文字小文字問題には気をつけましょう。ちなみに数字キーの1〜9までどこまでが使用されているのかは 端末によって違います(0は必ず使用します)。私のW53Sとかだと 1〜5までしか使用されていませんが、他の端末では7まで使われているのとかあります。なので空いている数字キーに自分がよく使う機能などを割り振って、一発起動させることとかが できます。

そして念のためって意味で、「アクション(ストップ)」とかいうレイヤーを作製し、2フレーム目に

/* ----タイムラインストップ---- */
stop();

と入れてあげましょう。まあなくっても「機能(赤)」のボタンアクションでの移動先指定で「gotoAndStop」使ってるんで大丈夫なんですが、一応保険として。

こんなところでスクリプトに関しては終わりです。もうあとはデザイン組み込むだけです。

2〜13フレームまでがそれぞれのメニュー一つ一つに対応しているので、各フレームに自分がデザインしたアイコンのグラフィックだとかムービークリップだとかを 配置してあげればもう万事オッケーです。

縦型メニューに関しては、「機能(赤)」のボタンアクションの記述を上下のみにすれば大丈夫です。あとは同じ様にフレームで区切っていけばいいだけです。

メニューに関しましては、各メーカーごとにActionScriptの記述が違うものが多く、私としても全ての端末の仕様が分かっている訳ではないので、 欲しいメーカーと品番をforum掲示板、もしくはメールにてリクエストしていただければ、こちらで対応できるものに関しては随時flaファイルをアップしていこうと 思っています。また今回の作製方法は一例を書いただけですので、端末によってはうまく動作しない場合があるかもしれないです。その場合もforum掲示板などに 書いておいていただければできる限り対応していこうと思っています。

リクエストのありましたアイコンメニュー(3x4型メニュー)のflaファイルです。

W61P アイコンメニューflaファイル

※launchパラメーターは入っていません。