【最大10000ポイント】当たる!!質問投稿キャンペーン!

http://www.geocities.jp/peperon44/peach.html←の様にアニメーションしてリンク先が出てくるロールオーバーを作っています。

http://www.geocities.jp/peperon44/peach.fla←に作っているファイルを置きましたが

一番上の階層にシンボル化したボタンを置き、その下の階層ですべてのフレームアニメーションをさせていますが、1フレーム目に

this.stop();
//マウスカーソルがロールインした
this.onRollOver = function() {
//ロールオーバー開始
rollover = true;
};
//マウスカーソルがロールアウトした
this.onRollOut = function() {
//ロールオーバー終了
rollover = false;
};
//フレームが進む度に実行
this.onEnterFrame = function() {
if (rollover) {
//次のフレームへ進む(最終フレームでは無視される)
this.nextFrame();
} else {
//手前のフレームに戻る(先頭フレームでは無視される)
this.prevFrame();
}
};

を入れ大ボタンから出てくる紹介、名前、名簿をそれぞれフレームアニメーションにさせ、シンボル化させて各オブジェクトに

on (release) {
getURL("name.html", "_foot");
}

を入れていますが、指定のURLにリンクがかかりませんのでボタンに反応してくれません。記述が間違っているのか、スクリプトを書く場所を間違えているのだと思います。

このつくりだと一番上の階層に

on (release) {
getURL("name.html", "_foot");
}

と入れると指定のURLにリンクされますが、それでは3つリンク先を分けられないので大ボタンから3つの文字がアニメーションして出てくる意味がありません。大ボタンから出てくる小ボタンにリンクを張るようにしたいです。
FLASHに関してはまだまだの未熟者ゆえ解らないです。何方かお助け下さい。

環境はWindowsXP ソフトはFLASH8です。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

まず、スクリプト内で「無視される」というのがありますが、実際無視はされていません


各々最終フレームの次がない、前のフレームが存在しないから"機能しない"だけで、スクリプト自体は実行を試みています

本題のほうですが、on(release)等のボタンのフォーカスやクリックに直接関係するonイベントハンドラは、上階層のものが優先(というか全部分をボタン判定化)するので、入れ子の場合、下の階層部分が機能しなくなってしまいます


今回のような、ロールオーバーとロールアウトの判定取得は以下のようにhitTestを使うと解決されると思います


//アニメーションMCの1フレーム目を以下に変更

this.stop();
this.onEnterFrame = function() {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
//このMCにマウスが触れている場合
if (this._currentframe != this._totalframes) {
//現在のフレームが最後でなければ1フレーム進む
nextFrame();
}
} else {
//このMCにマウスが触れていない場合
if (this._currentframe != 1) {
//現在のフレームが1じゃなかったら1フレーム戻る
prevFrame();
}
}
};

//ここまで


ただhitTestの範囲は円状のMCであっても、四角形として判定されるので、望みの形が四角形じゃない場合注意が必要です
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。お礼が遅くなりましてすいません。すごいですね。出来てしまいました。教えて頂いたスクリプトは今後にも活かしていこうと思います。
本当にありがとうございました。

お礼日時:2006/08/19 08:00

No1の者です。


なにやら意味不明なこと言ってました(笑

No2の方の言うとおりです。

ですが、flaファイルを見たところいろいろ指摘したいところがありました。

『ちゃんとインスタンス名を決めて、ロールオーバーやリリースなどの個々の役割をキチンと決めてやる』
これを守れば、hitTestでやらなくてもロールオーバーとリリースは使えます。

thisでmc全体にかけているから、そういう問題がでるんです。


pressで出来るなんて大嘘でした(汗
すいませんでした。。
    • good
    • 0
この回答へのお礼

たびたび回答を頂きありがとうございます。
インスタンスの扱いについては日頃から悩んでいます。

お礼日時:2006/08/19 10:41

ロールオーバーとreleaseは使えません。


releaseでなく、pressを使うといいです。

on (press) {
getURL("name.html", "_foot");
}
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
今回の小ボタンのオブジェクトをrelease から press に書き換えてみましたが、やはり反応がありません。入れる階層を間違えているのかもしれないです。それか _foot" 以降が違うのかもしれません。

お礼日時:2006/08/18 08:46

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング