
No.2ベストアンサー
- 回答日時:
色の変わるボタンをボタンシンボルで作り、このボタンをムービークリップに変換、つまり、ムービークリップの中にボタンインスタンスが含まれている状態、ということでしょうか?
ステージにムービークリップのインスタンスを置き、このインスタンスに on アクションを設定すると、ムービークリップ全体がヒット領域(マウスが反応する部分)になります。
ユーザーにはボタンにカーソルを合わせているように見えても、Flash の内部では、これはボタンではなくムービークリップで発生したマウスイベントと見なされます。ムービークリップ内のボタンではマウスイベントが起きていないことになりますから、「オーバー」のフレームに切り替わらず、色は変化しなくなります。
ムービークリップに透明なボタンを重ね、そのボタンに on アクションを設定した場合も、同様の理由でボタンの色は変わらなくなります。
透明なボタンに on アクションを設定した場合は、透明なボタン全体がヒット領域になります。クリックすると透明なボタンのイベントとして press (または release )イベントが発生し、リンク先は表示できます。しかし、その下の本来のボタンではマウスイベントが発生せず、「オーバー」のフレームに切り替わらないので、色は変化しません。
解決策ですが。
要するに、ムービークリップではなくその中のボタンがヒット領域になればいいわけです。
ムービークリップに配置したボタンに直接 on アクションを設定して、getURL を入れてみてください。ボタンがヒット領域になり、色も変わるようになると思います。
ボタン以外の場所(透明なボタンまたはムービークリップ)に on アクションを設定している場合は、スクリプトを削除してください。
Flash でバナーを作る時は、ムービーのどの場所がクリックされてもリンク先を表示できるように、透明なボタンを重ねる手法がよく使われます。
バナーは、基本的にはリンク先を表示できればいいだけです。ボタンの下のムービークリップなどでマウスイベントを利用する必要はありませんから、透明なボタンを重ね、そこがヒット領域になって他のムービークリップのマウスイベントが検出できなくなっても、特に問題はありません。
また、Flash 5 では、ムービークリップでは press や rollOver / Out イベントが検出できませんでした。ボタンシンボルではできない複雑なボタンは、ムービークリップで作らざるをえませんが、そのムービークリップでは press などのイベントが検出できません。その解決策の1つとして、透明なボタンを重ねるという方法がありました。
Flash MX からは、ムービークリップに on アクションを設定して、ボタン特有のイベントだった press イベント等も検出できるようになりました。透明なボタンを重ねなくても、ムービークリップが持っている機能だけで充分対応できます。
この回答への補足
解決策のようにムービークリップを開いて、そのボタンに
on(release){
getURL("http://・・・");
}
と書けばいいのですよね?
やったんですが、ボタンの色は変わるけれど、
リンクに飛ばないんですよ。。
なにか足りないのですか??
No.3
- 回答日時:
#2です。
ムービークリップの中のボタンに on を設定し、getURL で、間違いはないと思いますが・・・
ムービーの編集画面でも、メニューの「制御」→「シンプルボタン」にチェックを入れると、カーソルを合わせた時や押した時のボタンの外観は確認できますが、ボタンに設定されたアクションの動作は確認できません。「制御」→「ムービープレビュー」で確認してみてください。
ネットにつながっていない・URLが間違っているなどの理由でページが表示されなくても、ボタンを押した時にブラウザが立ち上がれば、スクリプト自体には間違いはないと言えます。
Windows をお使いで、ブラウザで既に表示している Web ページなどがある場合は、getURL で開いたウィンドウがタスクバーの中に入ってしまって、ブラウザが立ち上がっていないように見えることもあります。
なお、ムービークリップ内のボタンに on で直接設定する方法のほかに、 on*** というイベントハンドラを使って設定する方法もあります。
この場合は、ムービークリップに配置したボタンとステージに配置したムービークリップに、それぞれインスタンス名が必要です。
仮に、ボタンを btn 、ムービークリップのインスタンス名を clip とします。
メインのタイムラインに、次のようなアクションを設定します。
(↓このスクリプトをコピーして利用する場合は、各行頭の全角のスペースを、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります)
clip.btn.onRelease = function()
{
getURL("http://***");
};
この方法ですと、1つのシンボルから複数のインスタンスを作る場合、それぞれリンク先を変えられるという利点もあります。
こちらを利用する場合は、ボタンに設定した on アクションを削除してください。
編集画面で「シンプルボタン」にチェックを入れてもボタンの色が変わらなくなりますが、これは正常です。「ムービープレビュー」で確認してみてください。
下記の方法でうまくいきました。ありがとうござます。
ムービークリップを作り直したら、うまくいきました。(なぜかわかりませんが)
詳しい説明でした。なぜ、ボタンとして反応しないかまでよくわかりました。
No.1
- 回答日時:
>そのボタンをムービークリップとして
とありますので、その時点でボタンじゃなくなってしまったので、ポインタがその上に来ても反応しなくなってしまったんでしょう。
>前の質問にあった...
その質問がどれかはわかりませんが、その質問の質問者の方が解決されているのなら、どこか間違っているということになると思います。
少なくても、うまくできる方法が回答として掲載されていると思いますので、どこがわからなかったとか、こんな風になっちゃってうまく動かないみたいなことは書いたほうがいいと思いますよ。
この回答への補足
その動くボタンをステージに配置しただけだと、
ちゃんとポインタに反応するのです。
getURL()でリンクを張ったとたん反応がなくなるのです。
どうしてなんでしょう。。。(><。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
potplayerについて質問です
-
FLASHの再生はできないのでしょ...
-
uwscでExcelに自動記入
-
PHPの変数をAS3に渡す方法
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
-
Flashplayerの運用について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
arduino プログラムについて
-
マウスオーバーで色が薄くなる...
-
ボタンの上にカーソルを置いた...
-
ボタンをクリック後、画像を表...
-
×ボタンを無効化したいのですが...
-
ボタンの上に重なっているMCを...
-
[Start]を押すと始まるFlas...
-
一つのボタンで再生と停止を行...
-
FLASHナビボタンで、アクション...
-
ボタンをクリックして画面遷移...
-
VBAユーザーホームテキストボッ...
-
変数に256文字以上のテキストを...
-
VB6.0で、フォームから、別のフ...
-
四乗根を英語で言うと・・・
-
photoshopで書いた四角の枠の中...
-
python ボタンを押すと複数の関...
-
テキストボックスの中身をリセ...
-
【VB.NET】別Formのボタンが押...
-
マウス自体の移動量の取得
-
VBAで改行の入ったデータの正規...
おすすめ情報