No.3ベストアンサー
- 回答日時:
Flash のボタンには ALT を自動で表示する機能はありませんが、工夫次第で似たようなことはできます。
手っ取り早いのは、ボタンの「オーバー」フレームを利用する方法です。
ボタンシンボルの編集画面を開くと、タイムラインに「アップ」「オーバー」「ダウン」「ヒット」という4つのキーフレームがあるかと思います。
このうちの「オーバー」は、ボタンにカーソルが重なった時に表示されるボタンの外観です。
通常のボタンの外観が「アップ」です。「アップ」のフレームを「オーバー」にコピーし、ALT を表示した状態を描き足すと、カーソルが合った時に ALT を表示しているように見えます。
Flash で扱えるテキストの中に、ActionScript で表示内容を操作できる「ダイナミックテキスト」があります。ALT で表示する文字をシンボルのキーフレームに直接書き込まず、「ダイナミックテキスト」にして文字を可変にしておくと、1つのシンボルから複数のインスタンスを作った時に、それぞれ違う ALT を表示できます。
「オーバー」のフレームに ALT を表示するフキダシやポップアップチップを描き、その上にテキストツールでテキストフィールドを作ります。テキストフィールドのタイプを「ダイナミックテキスト」にし、「変数」の項目に変数の名前を入れます。ここでは仮に、alt という変数だとします。
ActionScript で、カーソルが合った時にこの alt に表示したい文字列を設定します。
ボタンにカーソルが合った時は、rollOver というイベントが発生します。これを利用して、
//ボタンにカーソルが合った時の処理
on(rollOver)
{
//ALTで表示する文字列を設定
alt = "ALTのテスト";
}
(↑このスクリプトをコピーして使う場合は、各行頭の全角のスペースを、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります)
このスクリプトはボタンのインスタンスに設定してください。
ALT の表示部分をムービークリップで別に作り、ボタンにカーソルが合った時、このムービークリップを ActionScript でボタンの傍に表示する方法もあります。
この方法だと、例えば、ボタンがステージの上方にある時は ALT をボタンの下方に、ボタンがステージの下方にある時は上方に表示する、といったことも可能です。
-------------------------------
UI コンポーネントを活用するには ActionScript を使います。ただ置いておくだけでは、せっかくのインターフェイスも、単なる絵になってしまいます。
ComboBox コンポーネントは、FComboBox というオブジェクトを使って制御します。
FComboBox には、項目が選択された時に発生するイベントはありません。代わりに、指定の関数を呼び出すように設定するためのアクション(メソッドといいます)だけが提供されています。
まずはプルダウンのインスタンスに名前を付けてください。これは、ボタンやムービークリップを ActionScript で制御する時のルールと一緒です。
ここでは仮に、プルダウンのインスタンス名を combo とします。
コンポーネントのインスタンスを選択すると、「プロパティ」パネルに「プロパティ」と「パラメータ」というタブが表示されます。「パラメータ」のタブでは、コンポーネントが持つパラメータの内容を編集できます。
「 Labels 」がメニューの項目に表示される名前、「 Data 」は各項目に設定できるデータです。
「 Data 」はいろいろな使い方ができますが、今回は、各項目が選択された時のフレームの移動先を管理するものとします。
例えば、メニューが「トップ」「メイン」「リンク」「BBS」の4項目で、それぞれのフレームの移動先が「 1 」「 5 」「 10 」「 15 」だとします。「 Data 」のパラメータを4つ追加して、これらの数字をそれぞれ設定してください。
FComboBox には、何番目の項目が選択されているかを取得する getSelectedIndex メソッドと、指定した項目に設定されている Labels や Data を読み出す getItemAt メソッドがあります。
これらのメソッドで、今選択されているのが何番目の項目かを取得し、その番号を元に Data を読み出します。Data にはフレームの移動先を入れてありますから、読み出した Data をそのまま gotoAndPlay に渡すことで、フレームを移動できます。
以上のような処理をする関数を1つ作ります。関数はどこで定義してもいいのですが、今回は、combo インスタンスで定義することにします。関数の定義は1度で充分ですから、combo インスタンスがステージに登場した時1度だけ発生する、load イベントを使って定義します。
この関数を、項目が選択された時に呼び出す関数として登録します。これには setChangeHandler メソッドを使います。
setChangeHandler で関数を登録する場合は、第2引数で関数がどこで定義されているか(関数の所有者のようなものと考えてください)を指定します。省略するとインスタンスの親になります。例えば combo がステージにあるなら _root です。今回は関数の所有者は combo ですので、第2引数は this (自分自身)となります。
スクリプトにすると、大体、以下のようになります。このスクリプトはプルダウンのインスタンス combo に設定してください。
なお、下記のスクリプトでは combo はステージにあるものとしています。何かのムービークリップに入れ子になっている場合は、ターゲットパスにご注意ください。
// combo がロードされた時、1度だけ実行する処理
onClipEvent(load)
{
//項目が変更された時の処理関数を定義
function Frame_jump()
{
var index;
//何番目の項目が選択されているかを取得
index = _root.combo.getSelectedIndex();
//項目に設定されている Data 値を読み取り、
//指定のフレームに移動
_root.gotoAndPlay( _root.combo.getItemAt( index ).data );
}
//項目が選択された時に呼び出す関数を設定
this.setChangeHandler( "Frame_jump" , this );
}
UI コンポーネントは、インターフェイス自体は簡単に作れるようになっているのですが、ユーザーが選んだ情報を処理する部分は制作者に用意させることで、汎用的に利用できる設計になっています。
その処理部分をどのように作るかが、少々難しいところです。
紙面の都合上、ActionScript の基本は割愛させていただきました。オブジェクト・ターゲットパス・関数・変数・イベント等については市販の書籍か、解説サイトなどをご参考になさってください。
長くなってすみませんでした。
不明な点がありましたら、補足してください。
No.2
- 回答日時:
Flashで作成されているんですよね?ALTとは?プルダウンとは?
HTMLやJavaScriptとは違いますので、上記のコメントの意味がいまいちつかめません。補足していただければ.....。
この回答への補足
ありがとうございます。ALTと書いたのはHTMLのALTのようにボタンや画像にカーソルを合わせたときに簡単な文字説明のようなものを設定したいと思っています。
プルダウンとはFlashではコンポーネントとかコンボボックスと呼ばれているもののようですが、フレームの移動の設定方法がわかりません。こちらは、アクティブスクリプトで制御するのでしょうか?
当方、FlashMXリファレンスを読みながらやっていますが上記に関しまして情報がありませんで、こちらに記載させていただいています。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- マルウェア・コンピュータウイルス FlashPlayerの削除とマルウェア感染について 5 2023/02/23 20:52
- デスクトップパソコン ホームページビルダー15 1 2023/05/30 12:30
- ホームページ作成・プログラミング Adobe FLASH に代わるソフトはありますか? 4 2022/09/27 19:35
- Excel(エクセル) [Excel2016] 相関表等の自動作成 2 2022/08/01 20:34
- Excel(エクセル) Excelで質問です。 詳細(写真) ①黄色の部分を全てプルダウンを設定する。 ②リストはG列 ③リ 1 2023/06/16 21:54
- Excel(エクセル) Excel2019 プルダウンで抽出したデータをコピペしたい 3 2023/07/11 09:10
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Flash 私のコンピューター上のファイルが開けられない。 1 2022/07/19 18:15
- デスクトップパソコン デバイスからのHDMI信号がありません 5 2022/05/07 18:08
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDFを開くとデフォルトで閲覧モ...
-
マウスカーソルをレーザーポイ...
-
JW-CADで、全体表示させ...
-
パソコンに巨大なストップウォ...
-
フォトショップで座標の位置を...
-
エクセルである行以下全部を削...
-
EXCEL VBAで全選択範囲の解除
-
VBAでファイルを開くときにファ...
-
visual studio でインデントを...
-
白飛びした(明るい)写真をiPhon...
-
Excel VBA あるセルでENTERを押...
-
Photoshop で8bit /チャンネル ...
-
「これが」「これで」いいです...
-
Excel 行列が選択出来ない
-
Jw-cadの範囲指定で文字が選択...
-
画像で特定の領域の割合を知りたい
-
「無」と「未」の使い方
-
ipadのpagesでMS明朝を使う方法...
-
画像の四隅を移動して変形でき...
-
エクセル ダブルクリック入力の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PDFを開くとデフォルトで閲覧モ...
-
マウスカーソルをレーザーポイ...
-
JW-CADで、全体表示させ...
-
GOM PLAYER で逆コマ送りする方...
-
PDFのツールウインドウを非表示...
-
フォトショップで座標の位置を...
-
メディアプレーヤー 次の曲に...
-
DMMのアダルトDVDのサンプル動...
-
illustratorの線幅について
-
photoshopで背景が灰色だとポイ...
-
Fireworksの作業画面の左側にあ...
-
ファーストストーン キャプチャ...
-
PhotoshopCS・CCの修飾キー設定...
-
aviutlでの次のキーフレームに...
-
マウスボタン左右同時押しをダ...
-
イラストレーターで拡大・縮小...
-
イラレでホイールによるズーム...
-
JWWでのマウス精度について
-
autocad 構築線 端点を基点に引く
-
winshotでマウスポインタを取り...
おすすめ情報