Flashを使ったサイトの改造を請け負ったことからこの格闘が始まった。
かれこれ3週間になるか。
ここへ来て、ようやく1つの成果が出たので書いてみる。
MP3を再生するだけなんだけど、容易ではなかった。
最初の仕様は以下の通り。
・16曲の中からランダムな位置から再生を始める
・曲名とファイル名はXMLに記述されている
・ON/OFFボタンとNEXTボタンがある
改造要求は、初期状態でOFFにするというだけ。
サイトを開いたら、必ず音楽が流れるのはうざいということだな。
前任者から引き継いだのが、FLAファイルとSWFファイルだから、
FLAファイル内のActionScriptをちょいと直せばいいだろう
と考えていたのは甘かった。
FLAファイルとSWFファイルのフェーズがあってなかった。
つまりFLAファイルが古いもので、音楽再生機能が実装されてなかったのよ。
前任者は雲隠れしていて音信不通。
しかたなく、ActionScriptを学習することに相成ったのね。
SWDからFLAファイルに逆変換するなんてツールもあったけど、
怪しげなツールだし、ActionScript部分が変換されないので、使えなかった。
MP3の再生とXMLは簡単にできた。
曲名を表示するためのテキストフィールドもすぐ理解できた。
ActionScriptなんてかっこいい名前が付いてるけど、
ようはJavaScriptだからね。
難航したのは、ボタンだな。
ボタンの作成と、ボタンを押されたときのイベントをどうやってとるかは
けっこう難しかった。ロールオーバーとかね。
ON/OFFを1つのボタンにして、押される度にボタンの絵を変更するのが、
最大の難関だったな。
ムービークリップに2つのボタン(ONとOFF)を、フレームとして登録して、
ボタンが押される度に、gotoAndStopでフレームの移動させるという方法を
やってたんだけど、この方法だとボタンのロールオーバーが無効になっちまう。
苦肉の策として、ボタンを2つ重ねて配置して、一方だけ表示しておくようにした。
ボタンが押されたら自分を消して、消されているほうのボタンを表示するように。
ボタンクラスのプロパティーの_visible で制御できる。
ActionScript、おもしれぇじゃん、て感じかな。
奥行きの深さを感じた。
タイムライン、ライブラリなんかのウインドウ内操作やスクリプトエディターの
ちょっとした動きにかなりくせがあるので、最初はとまどったよ。
機会があれば、極めてみたい世界だな。
最後に梅雨の空を1枚。