- 締切済み
アニメーションするナビゲーションを作りたい
http://toyota.jp/ このTOPページの様にナビゲーションに触るとアニメーションし、離すとアニメーションして、さらにアニメーションしながらコンテンツが出てきて、離すとまたアニメーションしながら閉じるというナビゲーションを作りたいです。各ボタンをムービークリップに変換して on(rollOver){ this.play(); } on(rollOut){ this.gotoAndPlay("end"); } on(release){ getURL("ファイル名.html"); } をオブジェクトに入れるまではわかったのですが。アニメーションしながら出てくるコンテンツの方はどうすればいいかわかりません。 FLASHのいろいろなサイトや本で同じ事をやっているものを探しましたが、同じものは見つかりませんでした。よくあるナビゲーションだけに誰か作ったことのある方はおられないでしょうか。お教え下さい。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mokomichii
- ベストアンサー率66% (6/9)
swfで動作は確認できましたよね? じゃあ簡単にですが説明してみます。 ■■ boxClass.as ■■ function boxClass() { //ここでは、mainムービークリップの大きさを0にして まます this.main._xscale = 0; this.main._yscale = 0; } function onRollOver() { //ロールオーバーするとmovメソッドを1000÷50/秒実行 //引数としてthis.numXというのがありますが、 //これはbox.flaの1フレーム目にある //box1.numX = 100; //オーバー時に横幅が100になる //box1.numY = 200; //オーバー時に縦幅が200になる //で設定した変数を参照しています。 clearInterval(interB); interA = setInterval(this, "mov", 1000/50, this, this.numX, this.numY); } function onRollOut() { clearInterval(interA); interB = setInterval(this, "mov", 1000/50, this, 0, 0); } function mov(th:Object, XS:Number, YS:Number) { //XSは目標となるXのサイズです。 //ここでは、減衰運動を行っています。 //値 = (目標値)-(現在の値)/5; //横幅 = 現在の値+値; //この計算でイージングな動きができます。 var kyoriX = (XS-th.main._xscale)/5; var kyoriY = (YS-th.main._yscale)/5; if (Math.abs((th.main._xscale-kyoriX))<0.5 && Math.abs((th.main._yscale-kyoriY))<0.5) { clearInterval(interA); clearInterval(interB); } else { th.main._xscale = th.main._xscale+kyoriX; th.main._yscale = th.main._yscale+kyoriY; } } } ■■--------------------------■■ ppnnさんがどの程度知っているか分からないので、 用語の解説等はしませんでした。 さっぱりなんのことか分からない場合は、 今回は理解するのは厳しいと思いますので、本かなにか読んで勉強してからがいいと思います。
お礼
すいません。swfファイルにしてみましたが動かないです。 何をやっているのかさっぱりわからないことはないです。