« クリックでスライド表示するコンテンツ | トップページ | JavaScriptでアコーディオンメニュー »

2007.12.17

auサイトのようなアコーディオンメニュー

Flash モーションライブラリ|Google Tweener

また今月のWeb creatorsからの使えそうなテクニックを…。
今度は、auのオフィシャルサイトで使われているようなFlashを使ったアコーディオンメニューが簡単に作れるモーションライブラリを紹介してみます。
Flashコンテンツ制作者なら、一度は作ってみようと思ったり、クライアントから要望された経験があるのではないでしょうか?でも実は、矛盾のでないようにスクリプトを組むのが思いの外難しかったりします。…僕も凝った仕組みは作れません。
しかし、Google codeの「Tweener」というライブラリを使えば、あら不思議?! 簡単に作れてしまいます。

サンプルはこんな感じです。

↑このFlashデータはこちらからダウンロードできます。

方法です。
「Tweener」のページからtweener_1_26_62_as2.zipをダウンロードして、中に入っている「caurina」というディレクトリごとFLAファイル(swf)と同じ階層におきます。
Flash本体は、各パネルのMCを作り、ステージ上の適当な位置に配置。_rootの1フレーム目に以下のActionScriptを記述します。

/*ライブラリ読込*/
import mx.utils.Delegate;
import caurina.transitions.Tweener;

/*トゥイーンをさせる関数*/
function tw(_x1:Number,_x2:Number,_x3:Number,_mc1:MovieClip,_mc2:MovieClip,_mc3:MovieClip):Void{
    Tweener.addTween (_mc1,{_x:_x1,_y:0,time:1,transition:"easelnOutCubic"});
    Tweener.addTween (_mc2,{_x:_x2,_y:0,time:1,transition:"easelnOutCubic"});
    Tweener.addTween (_mc3,{_x:_x3,_y:0,time:1,transition:"easelnOutCubic"});
}

/*パネルごとの動作*/
// パネル01
panel01_mc.onRollOver = Delegate.create (this,function():Void{
    tw (0,300,320,panel01_mc,panel02_mc,panel03_mc);   
});
// パネル02
panel02_mc.onRollOver = Delegate.create (this,function():Void{
    tw (0,10,320,panel01_mc,panel02_mc,panel03_mc);   
});
// パネル03
panel03_mc.onRollOver = Delegate.create (this,function():Void{
    tw (0,10,30,panel01_mc,panel02_mc,panel03_mc);   
});

上のスクリプトは例ですので、データを参考にカスタマイズして下さい。
ActionScriptに詳しい方なら、タイマーを設置して、時間が来ると自動的に次のパネルを表示するコトもできると思います。

|

« クリックでスライド表示するコンテンツ | トップページ | JavaScriptでアコーディオンメニュー »

コメント

サンプルをダウンロードして、Flaデータを参考にさせていただこうと思っていたのですが
(本とこちらを参考にさせていただいてますが/*トゥイーンをさせる関数*/でスクリプトエラーがでるのです)
Flash MXとMX 2004で試しましたが開けません。
何で開けばよいのでしょう?

投稿: citron | 2008.03.13 13:56

citronさん、コメントありがとうございます。

Flashのサンプルは、Flash 8で作っていますので、以前のバージョンでは開けません。
また、今回のサンプルはFlash Player 8以上でないと、スクリプトエラーを起こすようです。
ですので、MX 2004以前のバージョンでは使えないと思います。。
…お力になれず、申し訳ございません。

投稿: exyz | 2008.03.13 14:49

たびたび失礼いたします。
exyzさんのコメントをいただき、あれからAdobe Flash CS3 Proで上記フラッシュを作成し、うまく動作させることができました。ありがとうございました。
一点お伺いしたいのですが、上記の各パネルにリンクをつける際の手順を教えていただきたく再度コメントいたしました。

透明ボタンで試してみたのですがボタンを動かすことは(当然)できなく、リンクも最上位のパネルのリンクしかリンクさせることはできませんでした。
何か助言いただければと思います。
お忙しいところ申し訳ありませんがよろしくお願い致します。

投稿: citron | 2008.03.26 10:10

citronさん、コメントありがとうございます。

間が空いてしまい申し訳ないです。
実は体調を崩し、3/24から10日程入院していました。
まだまだ本調子でなはないので、しばらくお待ちいただけますか?
申し訳ございません。

投稿: exyz | 2008.04.03 14:12

citronさん、回答が遅くなりました。

Flash CS3で制作されたというコトですが、ActionScript3.0でパブリッシュしていませんか?

ActionScript3.0からは、ボタンアクション、ムービークリップアクション、イベントハンドラメソッドが廃止になったようです。
AS3.0でやるなら、addEventListener()メソッドを使ってイベントリスナーを登録するという方法をとらなければいけません。

簡単にやるなら、パブリッシュの設定をAS2.0にすれば、ムービークリップアクションが使えるので、今まで通りの方法でできると思います。

※ウチの環境はまだFlash 8なので確認はできませんが…。

投稿: exyz | 2008.04.07 08:23

exyzさんありがとうございます。
exyzさんに教えていただいた方法をもとにやってみますね^^
それからお体を崩されていたとのこと。そんな中お伺いしてしまい本当に申し訳ありませんでした。
お体ご慈愛くださませ。

投稿: citron | 2008.04.11 15:09

はじめまして。

上記のサンプルFLAファイルをダウンロードして
参考にさせていただきました。

ありがとうございます。

実は、これにリンクを付ける時の手順がわかりませんので教えていただけたら幸いです。

flash8 professionalです。

よろしくお願いします。

投稿: Iceman | 2009.01.16 16:04

Icemanさん、コメントありがとうございます。

前にもcitronさんという方から質問されましたが、Flash8ならAS2.0ですので、それぞれのパネルMCにムービークリップアクションを記述するのが、一番簡単だと思います。

具体的には、該当するムービークリップを選択した状態でアクションパネルを開き、下記のように記述して下さい。
on(release){
getURL('xxx.html',"_top");
}

※この時、リンクするhtmlの階層とターゲット属性に注意して下さい。

投稿: exyz | 2009.01.16 17:40

exyzさんありがとうございます。
教えていただいたことを
試してみたところリンク出来ました。

また、質問があったらコメントさせていただきますので
よろしくお願いします。

投稿: iceman | 2009.01.17 15:52

Icemanさん、コメントありがとうございます。

ムービークリップアクションでhtmlファイルにリンクさせるのは、ActionScriptの初歩の初歩です。
AS2.0以前の参考書には必ず載っているハズです。

ActionScriptは敷居は低いですが、奥は深く果てしないので、何冊か参考書を購入して自分で勉強してみる事が大切ですよ。
そうしないとなかなか身に付かないと思います。頑張って下さい!

投稿: exyz | 2009.01.17 21:21

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35737/17394423

この記事へのトラックバック一覧です: auサイトのようなアコーディオンメニュー:

» auサイトのようなアコーディオンメニュー [Flash 使えるTips&サンプル|webデザイン事務所 エクスワイジー]
Flash モーションライブラリ|Google Tweener また今月のWe... [続きを読む]

受信: 2008.06.10 21:48

» ActionScriptライブラリ|Tweener [Good Sleep]
話題のトゥイーンアニメーションライブラリ|web designing 2008年9月 以前にこのブログでも「auサイトのようなアコーディオンメニュー」と題して、Tweenerを紹介しましたが、9月号の [続きを読む]

受信: 2008.08.24 17:41

» 編集可能なテーブルの作成 [totofund! (PukiWiki/TrackBack 0.4)]
TableKitを使う。 これは本当に便利だ。わざわざ、検索条件を保持して、ソートをさせてとか実装させずに非同期通信でクライアント側で処理することができる。 TableKitの本家 http://www.millstream.com.au/view/code/tablekit/ 参考ブログ http://webtech.seesaa.net/art...... [続きを読む]

受信: 2008.10.02 21:55

« クリックでスライド表示するコンテンツ | トップページ | JavaScriptでアコーディオンメニュー »