XMLの内容を反映させる

XMLの内容を反映させる

 今まででは、読み込む曲目のファイル名やパスを「var songs:Array = ["MP3/sound1.MP3","MP3/sound3.MP3","MP3/sound2.MP3"];」のように、Flashファイル内に直接で書き込んでいました。これはメンテナンスする場合にも少し面倒なので、ラジオで連続再生させる曲目、アーティスト名、ファイルパスをXMLで作成します。それをFlash内に読み込んで、今までのスクリプトと連携させます。

 それでは、ダウンロードしたファイルの中から「SimpleRadio_xml.fla」を見ていきましょう。

 内容としては「必要なXMLをロードして、その内容をfor each文で回して、曲目リストを作り、playSong()メソッドに渡す」といったものになります。このようにFlashに対して外部ファイルから指示できれば、非常にリッチなアプリケーションを作成することができます。今回は静的なXMLファイルを使用しますが、この部分をほかのWebアプリケーションなどで書き換えることができれば、動的なラジオを作成することができます。

 筆者の場合はRuby on Railsと組み合わせて、使用することが多いです。Ruby on Railsの場合はどのようなXMLも書き出せる、XMLBuilderというものがありますので、そこからはき出したXMLとFlashを連携させて使用しています。

 それでは、今回作成する静的なXML+Flashで作るラジオの解説に戻りましょう。まずXMLファイルの定義はリスト2のようになっていて、songs.xmlというファイル名で保存されています。

 これをリスト3のメソッドで受け取って、ロードします。

 ただ、ロードしたものはテキストなので、次のonXMLloadedメソッドでXMLオブジェクトに変換し、そのインスタンスを作成します。

songs_xml = new XML(xmlLoader.data);

 これでXMLオブジェクトが作成されたので、今度はそれをfor each文で回して、曲目を表示するための配列song_namesに曲目を入れて、ファイル名を取得するための配列songsにファイル名を入れていきます(リスト4)。

 そこまでできたらsongPlayメソッドに渡します。するとXMLファイルに記述してある順に曲が再生されます。

曲名を表示させる

 ファイルのパスから連続再生させることはできたので、今度は曲名を表示するようにしてみます。曲名を表示させたい所にダイナミックテキストボックスを作成し、インスタンス名をsong_nameとします。ここに、先ほど作成した配列song_namesから名前をとってきて、表示させます。

 まずは曲名を取得するメソッドgetSongName()を定義します。

function getSongName(){
song_name.text = song_names[songNum];
}

 これは単純に配列の中の名前を取り出しています。次にplaySong()メソッドの中にgetSongName()を書き加えます。つまり曲を再生するたびに曲名を取得せよとしている訳ですね。これで再生している曲を表示することができました。

人気記事トップ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