複数のバナー間で連携するバナーの作り方

連携するバナーに求められる「複数あるからこそのデザイン」大々的なキャンペーンの際には、1つのサイトに同時にいくつものバナーを掲載することがあります。電車などにおける車内全面広告のようなメディアジャックは、壮観に感じられます。しかし、Webサイト内だけでそれを行っても、壮観に感じるのは難しいと思います

山田 宏道

2009年2月24日 20:00

連携するバナーに求められる「複数あるからこそのデザイン」

大々的なキャンペーンの際には、1つのサイトに同時にいくつものバナーを掲載することがあります。電車などにおける車内全面広告のようなメディアジャックは、壮観に感じられます。しかし、Webサイト内だけでそれを行っても、壮観に感じるのは難しいと思います。むしろ、背景と認識されてしまうかもしれません。

そこで、複数のバナーをただ複数配置するだけではなく、「複数あるからこそのデザイン」を考える必要があります。

最終回は「同一ページにある2つのバナー間で連携して動作するバナー」の実装方法について解説していきましょう。

今回は、ページの左右両側にスカイスクレイパータイプのバナーがあるサイトで、その両方のバナーを制作することになったと想定します。また、ベースとなるバナーは、本記事の第2回で作成したビールの液面が上下するものです。

両側に配置されたそれぞれのバナー上に、「のむ」ボタンと「つぐ」ボタンを配置します。「のむ」ボタンを押すと、そのボタンがあるバナーの液面が下がり、「つぐ」ボタンを押すと、もう一方のバナーの液面が上がる、という仕組みにします。

バナー上のボタンだけでは左右のバナーを交互に操作することが難しいので、左右それぞれのボタンにキーボードのキーを割り当てます。キーを連打するとそれぞれのボタンをクリックしたときと同等の処理を行うようにします。

これは、2人が同時にキーボードを連打しながら、自分が先に飲み干す、というちょっとしたゲーム性への発展を想定しているものです。また、本記事ではあくまでバナーの仕組みを探ることを主題としていますので、ゲームとしての完成はさせません。完成イメージは図1のようになります。

JavaScriptを介して連携

このバナー制作で中心となる技術は2つのFlashのやり取り、つまり通信部分です。この部分には今まで同様ExternalInterfaceクラスを用います。

今回はFlashのExternalInterfaceクラスで公開されたインターフェースをJavaScript側から呼ぶ必要もあります。まずは、その方法について説明していきましょう。

FlashバナーはSWFObjectを使って配置していますが、そのembedSWFメソッドを使うときに、引数としてidを指定します。このidは、どのFlashオブジェクトか区別できる必要がありますので、左右のバナーで別々のidを指定する必要があります。該当するJavaScriptは、左側のバナーの場合、次のようになります。

swfobject.embedSWF("flaale-banner04L", "embed_swf_L", "160", "600", "9.0.0", "expressInstall.swf", {}, {}, {id:"FLASH_BANNER_L"} );

JavaScriptからFlashオブジェクトの公開メソッドを呼び出すためには、Flashオブジェクトを指定するHTML要素となるobjectタグの属性であるidを知る必要があります。そのために、上記のように9番目の引数でidパラメータを指定する連想配列を渡します。

ここでembedSWFの引数の意味をおさらいしておきましょう。最初の2つは「"embed_swf_L"というidのdivに、"flaale-banner04L.swf"というファイルを表示させる」という意味です。そのオプションとしてサイズは「160x600」、必要なFlashPlayerのバージョンは"9.0.0"、代替表示Flashは"expressInstall.swf"とし、flashvars、params引数は特に指定しないので空の連想配列「{}」を渡し、最後に属性を指定する連想配列(attributes)を指定しています。

右側のバナーも同様に指定します。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30