ブログに桜の花びらが舞うパーツを作ろう

2009年2月27日(金)
山下 美緒

複数のswfを連携させるローカルコネクションの仕組み「cherry.swf」

 今回は、ページを開くと、まずサイドバーの「sidebar.swf」で、1から今回の訪問回数まで数字がカウントアップするアニメーションが流れ、その後に「cherry.swf」が表示され、桜の花びらが舞うアニメーションが実行されるという演出にしたいと思います。

 「sidebar.swf」と「cherry.swf」は、ローカルコネクションを使うことにより、お互いにコマンドを送ることができるので、アニメーションのタイミングを連携させることが可能です。

 具体的なフローとしては、まずコマンドを送信する「sidebar.swf」と受信する「cherry.swf」の双方にローカルコネクションオブジェクトを生成し、「cherry.swf」はいつでもコマンドが受信できるように待機状態にしておきます。

 「sidebar.swf」では、カウントアップのアニメーションが完了したタイミングでsend()メソッドを使って、待機状態になっている「cherry.swf」内のメソッドを呼び出し実行します。

 それでは、受信する側の「cherry.swf」のスクリプトの詳細を見てみましょう(ダウンロードファイルのMain.as内に記述)。

 (1)ローカルコネクションオブジェクトを生成します。

myCon = new LocalConnection();

 (2)受信するオブジェクトを設定する

myCon.client = this;

 (3)「cherryParts」という接続名で受信待機状態にします。この際に、もし既に同じ接続名で待機中の他のオブジェクトがある場合は、エラーが発生し接続設定が完了できません。

try {
myCon.connect("cherryParts");
} catch (error:ArgumentError) {
trace("既に同じ接続名で待機中です");
}

 (4)「sidebar.swf」から呼び出されるメソッドを生成します。今回は特に設定していませんが、パラメータを設定して値などのやりとりを行うこともできます。

 このメソッドは外部から呼び出されますので、必ずパブリックメソッドにしておくように注意しましょう。

public function startAnime() {
//ここに桜の花びらアニメーションを生成するメソッドを記述します
}

複数のswfを連携させるローカルコネクションの仕組み「sidebar.swf」

 それでは次に、データを送信する側の「sidebar.swf」に記述するスクリプトを確認してみましょう(ダウンロードファイルのsidebar.asに記述)。

 (1)ローカルコネクションオブジェクトを生成します。また、正常に動作しない可能性もありますので、エラー処理も忘れずに入れておきましょう。

myCon = new LocalConnection();

 (2)カウントアップするアニメーションが完了したときに、下記のメソッド(showCherry)を実行します。

private function showCherry():void
{
//JavaScriptを呼び出す(このswfを表示しているブロックを非表示にする)
var closeCall = ExternalInterface.call("showKuru2Sample();");
//フローティングのアニメーションを開始する
myCon.send("cherryParts", "startAnime");
}

 ローカルコネクションオブジェクト(myCon).send()を実行すると、「sidebar.swf」内のstartAnimeメソッドが実行されます。

 また同時に、読み込み時にはJavaScriptで非表示(visible=false)設定にしているHTML上にあるフローティング領域のレイヤーを表示するために、JavaScriptも実行します。このJavaScriptの仕組みについては、前回の記事(http://thinkit.jp/article/858/2/)にて解説していますので、ご参照ください。

 このような流れで、サイドバーのアニメーションと、フローティング部分のアニメーションの同期をとることができます。

 このローカルコネクションの仕組みを応用すると、例えばサイドバーのブログパーツ内にいたキャラクターがボックス内から飛び出して、ブログ中を動きまわるような演出などでも、スムーズに気持ちよく連携をとることができます。

株式会社ピクルス
大学卒業後、JAの金融窓口の事務を2年間行った後、一念発起しWebの世界へ飛び込む。eラーニングコンテンツの制作会社やWeb系の制作会社を経て、2007年より(株)ピクルスに勤務。現在は、広告キャンペーン系のサイトの企画/制作、特にFlashやXHTML/CSSなどのWebコンテンツ全般の実装を行っている。ブログパーツを中心としたデジタルアイテムの配信サイト「くるくるパーツ(http://parts.kuru2jam.com/)」も運営中。最近は、上越線が気になっています。
http://www.pickles.tv/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています