ブログは週2回、月曜と木曜更新です。

2010/02/9

[AS3] シーケンス遷移(ページ遷移)を自作する3 (swfaddressを試す)

こんにちは。きんくまです。

F-siteのセミナーに行ってきました。
今回からスタッフとして参加です。
内容はケータイFlash。
つまりFlash Liteの話を中心に、技術的な話だけでなく、仕事の進め方なども交えて講義がありました。
LISMO深海ワンダーなどの実例も紹介されました。なかなかこういう機会はないと思うので、とても面白かったです。
ケータイの面白いところは、リアルタイム性にあるみたいです。
岡田さんの講義中に、デモ用のケータイサイトからボタンを押すとプレゼンの画面にニコニコ動画のように「へぇー」やコメントがたくさん流れたりしてました。
岡田さんはサービス精神旺盛な方なようでした。
講義の最後に「TBS系のオールスター感謝祭」と同じようなゲームが出てきて、それを使ってご自分の本のプレゼント大会をしてました。これには驚きました。「アンサーチェック!」とかいうと、リアルタイムにケータイからの投票状況がランキングされてプレゼン画面に出ていたので。演出も本物そっくりで、すごかったです。

さてさてswfaddressです。


>>画像クリックで別ウインドウがひらきます。
swfaddress1

>> 今回のソース一式

swfaddressはJavaScriptとFlashを連携させて、ディープリンクを実現するライブラリです。
ディープリンクというのは、通常Flashだけだと内部にURLを直接そのままだと貼ることができないのですが、ページ内リンク(#ではじまるやつです)を使うことによって実現しようというやつです。

で、今まで試したことがなかったんですが今回やってみました。
そしたら意外と基本は難しくなくて素朴な仕組みでした。

1.ASで、SWFAddressのイベントをリスナー登録しておく
2.ASで、SWFAddress.setValue(’設定したいURL’);をする
3.SWFAddressがJSと連携プレー。ブラウザのURLを変更する。SWFAddressがASのイベントをdispatch
4.ASでイベント登録していた関数がよばれる。
5.関数の中でSWFAddress.getValue();をすると現在のURLが読み込めるので、switchやif文で分岐

が基本の流れです。他にもいろいろと機能はあるみたいですが、基本はこれで十分かと。
feb19.jpさんのブログ記事が詳しいです。
>> AS3 で SWFAddress 2.4 を使う ( Flash でブラウザの戻るボタン、パーマリンクに対応する )

もう少し、簡単に知りたい!という方は、本家のチュートリアル集からこのページがおすすめ
>>SWFAddress ActionScript 3 sample for Flash

で、ここまでできたのですが、2階層目以降の場合は結構難しそうですね。
URLを判別して再帰処理をして画面を積み上げていくのかな?と今考えていますけど、いろいろ試してみないとなんともですね。

今回のメインのソースです。
この投稿の続きを読む »

2010/02/5

[AS3] シーケンス遷移(ページ遷移)を自作する2 (非同期処理を組み込む)

こんにちは。きんくまです。
先日の節分の日に、家族で豆まきをしました。
私が鬼役だったので、外で家族が豆をまいてくれるのを「出待ち」してたんです。そしたら、その日は雪がちょろっとふってきていて、すごく寒かったです。
早く出てきて豆まいてほしかったです。

さて、前回のシーケンス遷移の続きです。
今回は前回のものに、非同期処理を加えてみました。
シーンのイベント処理はProgressionを参考にしました。

>> ファイル一式

この投稿の続きを読む »

2010/02/3

[AS3] シーケンス遷移(ページ遷移)を自作する1

こんにちは。きんくまです。
東京や千葉では昨夜、雪が降りました。
すぐに溶けてしまったのですが、子供は物心ついて初めて見た雪なので喜んでいました。
2年前にも見たのですが、あのときは1歳ちょっとだったから。

さて、今回はシーケンス遷移を自作してみようと思います。
シーケンス遷移は、ゲーム業界で使われている用語のようです。
普通にいうとページ遷移です。
なんでゲーム業界のことなんか出てくるんだ?といいますと、今回は下の本を参考に作ったからなのです。

>> ゲームプログラマになる前に覚えておきたい技術

これはセガの中の人が書いた本です。C++の本なのですが、考え方は別の言語でも
使えるということでAS3で拝借しました。
この本の中でシーケンス遷移は2章割かれていまして、簡単なのと難しいのがあります。
今回は難しい方をやってみようと思います。
もっとも、難しいといってもオブジェクト指向やデザインパターンなどを熟知している人からしたらすごく簡単だと思います。
私には難しかったです。

さて、今回のデモ

>> ファイル一式

 
シーケンスやページという呼び方でもいいんですが、今回はProgressionに習って
シーンという呼び方にします。
シーン構成はこんな感じ。

Main(シーンなしこれを基底とする)
 ┣ タイトルシーン
 ┣ オプションシーン
 ┣ ゲームシーン
    ┣ ポップアップシーン

Main直下に、タイトル・オプション・ゲームが並んでいて、
ゲームにポップアップがぶら下がっている形。
ゲームが表示されている上にポップアップが出ていることに注目してください。

この投稿の続きを読む »

2010/01/31

[AS3] 自分メモ 静的に配置したサウンドの取り扱い

自分メモです。

タイムライン上に配置したストリーミングサウンドは、MovieClip自体を停止しないと
ストリーミングが永久に続く。

streming_sound

特に注意しなければいけないのが、タイムラインにストリーミングサウンドを貼り付けたMCが入っているswfを
外部ファイルとしてloaderで読み込んだとき。
loader.unloadをやっても、何をやってもそのままだとストリーミングサウンドがなり続ける。
解決策としては、unloadする前にMCをstopしてあげること。

タイムラインに貼り付けるのが「ストリーミング」ではなく「スタート」であれば、unloadするだけで音は消える。

本当はSoundChannelをstopできればよいのだが、タイムライン上でなっているサウンドのSoundChannnelが
どうやって取得できるのかがわからないためこうする。

タイムライン上の音量はmc.soundTransformで変更できる。クラスファイル内ではthis.soundTransformで。
全体の音量調整はSoundMixer.soundTransformで変更できる。
ただ、SoundMixerは個別の音量調整ができない。

2010/01/25

[AS3] flvの総時間

こんにちは。きんくまです。
ちょっとだけ暖かくなったり、寒くなったりな感じの今日この頃ですね。

この間、「世界ふしぎ発見」見てました。
番組でナビゲーターっちゅうか、現地リポーターが何人かいまして、毎回変わるんです。
そしたら、誰がしゃべっても同じ口調でしゃべってることに最近になって
気がついたんです。
そう、誰が出ても、ゆっくりと、文節を、しっかり区切って、しゃべる。
だからきっとあれには「ふしぎ発見口調」、略して「ふし調」マニュアルなるものが存在するんでしょうな。
驚くときも、本当に驚いて「キャっ!」というよりは「うわー、すごいですね」みたいに妙に落ち着いた感じで。

あ、flvの話です。
flvプレイヤーを作ろうと思って、Adobeのヘルプみながら作ってたんですけど、
どこにもflvの総時間ってやつが書いてない!
NetStreamのプロパティにない!

で、調べてみたら英語サイトで同じように困った人がいて、
フォーラムで「onMetadata使え」っていわれてました。
マニュアルで調べたらちゃんと書いてありました。

>> OnMetaData() の使用

これで、総時間がわかったので無事にseekできるようになりました。
で、何がいいたかったかと英語少しわかると便利だなー。っていうことだけです。

ページトップへ戻る