D0812032 アコーディオンメニューの遊び
Name シロ
Date 2008年12月03日 (水) 15時17分
Message 色々見てアコーディオンメニューの作成まではできたのですが。
もうひとつ工夫をこらして、遊びを入れたいです。
例えば、
http://www.nara-kankou.or.jp/campaign/campaign/
のように。。。
(マウスアウトしている際もしくは、一定の時間が経過すると自動で動きます。)


// 表示枠の 横幅 を設定(変更可)
w = 880;
// 表示枠の 左側余白 を設定(変更可)
m = 0;
// 表示枚数(p_mc? の個数)の設定(変更可)
n = 5;
// 狭いときに見えている範囲を設定(変更可)
r = 125;
// 動く速さの設定(変更可)
s = 1/5;
//------------------

// 選択番号 p の初期化
p = 0;

// 各 p_mc? を初期座標に設置
_root.p_mc._x = m;
for (i=1; i<n; i++) {
_root["p_mc"+i]._x = m+w-r*(n-i);
}

for (i=0; i<n; i++) {
// 各 p_mc? にローカルな変数 p の値を設定
_root["p_mc"+i].p = i;
// 各 p_mc? のボタン _btn ロールオーバー時
_root["p_mc"+i]._btn.onRollOver = function() {
// 親の p の値を _root の p に代入
_root.p = this._parent.p;
};
}

for (i=1; i<n; i++) {
// 各 p_mc1〜p_mc(n-1) の動き
_root["p_mc"+i].onEnterFrame = function() {
// _root の p の値によって目標座標を変える
if (_root.p<this.p) {
this._x += (m+w-r*(n-this.p)-this._x)*s;
} else {
this._x += (m+r*this.p-this._x)*s;
}
};
}
Response 01
2008年12月04日 (木) 01時56分> joy 
シロさん、
時間の制御には、精度を要求しない場合は、刻まれるフレーム数をカウントし、そのカウント数をベースに、条件分岐を行うのが、最も、簡単な方法です。以下の憲ちゃんさんの回答が参考になると思います。
■時間の経過で自動的に画像をクロスフェードするスクリプト。
Response 02
2008年12月04日 (木) 13時43分>  
ありがとうございます!
一度みてみます!!!
Response 03
2008年12月04日 (木) 15時30分>  
お世話になります。
過去の記事を見ていろいろためしているのですが、エラーがでてしまいます。

代入ステートメントでタイプが一致しません。Number が見つかりましたが、ContextMenu が必要です。


各btnのアクションスクリプトが間違っているようです。

on (rollOver) {
_root.menu = 1;
}
on (rollOut) {
_root.menu = 0;
}


と記述しているのですが。。。

なぜでしょうか??
お忙しい所恐れ入りますが、ご回答いただけると幸いです。
Response 04
2008年12月04日 (木) 18時29分>  
できました!!!!

色々試していたらできました。

ありがとうございます
Response 05
2008年12月04日 (木) 21時25分>    
できたと思っていたのですが。。。

ネットにアップするとhitTestがうまくうごいていないようです。

一定の時間がたっても動きません。。。。

どうしたらいいのでしょうか??
Response 06
2008年12月07日 (日) 13時54分> joy   
白さん、
5秒間隔で、自動的に動き、ループするサンプルを下に置きました。フレームを刻み、時間を計る方法を採用してますので、参考にしてください。尚、ロールオーバー、ロールアウト時の動きは、省いてますので、了解下さい。
1.Professional 8で保存し、Tweenクラスを使ってますので、使えない場合は、onEnterFrameに読み替えてください。
2.外部JPGではなく、変化をつけるため、1.swf、2.swf、3.swf、4.swfという、外部SWFにしてます。
http://homepage2.nifty.com/joys/answers/accordion/a_menu.html
Response 07
2008年12月08日 (月) 10時20分>  
ありがとうございます!!!

一度こちらで試してみます。
お忙しい所恐縮です!!!

このページの先頭へ