Macromedia Shockwave for Audio
  • 下の図に示すような、インターフェイスのShockwave for Audioのプレイヤーを作成してみます。



  • このプレイヤーは、HTML内のEMBED Tagの中にSWAファイルのURLを記述しておいて、Shockwave内からそのURLを読み込んで、サウンドを再生するという方式です。下のグリーンのバーは、何パーセント再生されたかを表示します。また、右側のボタンは、ボリュームをコントロールします。

  • まず、EMBED Tagですが、
    <EMBED WIDTH=368 HEIGHT=46 SRC="myplayer.dcr"
    URL1="http://www.most-web.com/tom/32K/001.swa"
    URL2="http://www.most-web.com/tom/32K/002.swa"
    URL3="http://www.most-web.com/tom/32K/003.swa"
    ----------------
    ----------------
    URL12="http://www.most-web.com/tom/32K/012.swa">
    というように、SWAファイルのURLを書いておきます。

  • 今回の仕組みは、externalParamValue(n)というコマンドを使用して、EMBED Tag内に設定したURLを読み込むようになっています。上記のEMBED Tag内でのパラメータは、WIDTH、HEIGHT、SRC、URL1、URL2、・・・URL12となっています。この場合、externalParamValue(1)は、WIDTHの値、つまり368を返してきます。同様に、externalParamValue(2)は、HEIGHTの値である46、externalParamValue(3)は、SRCの値であるmyplayer.dcr、externalParamValue(4)は、URL1の値であるhttp://www.most-web.com/tom/32K/001.swaを以下、同様にURLを返してきます。このことをふまえた上で、Shockwaveを作ってみます。

  • それでは、キャストですが、以下のようになっています。

    • ご覧の様に、1〜5、11〜12、31〜42がビットマップキャストです。
    • 7は例によって、インサートコマンドで入れたSWAキャスト
    • 8〜10、51、52がスクリプトキャストになっています。

      キャスト1は以下のようになっています。



  • スコアは、



    です。

  • スプライト1は、キャスト1
  • スプライト2は、キャスト3(下のグリーンのバー)
  • スプライト3、スプライト3は、キャスト4、キャスト5(右側のボリュームボタン)
  • スプライト11〜22は、1から12のボタン
  • 各スクリプトについては、以下のように記述します。
    キャスト51のムービースクリプト
      on startMovie
        global URLList,gWidth
        set URLList = []
        append  URLList,externalParamValue(4)
        append  URLList,externalParamValue(5)
        append  URLList,externalParamValue(6)
        append  URLList,externalParamValue(7)
        append  URLList,externalParamValue(8)
        append  URLList,externalParamValue(9)
        append  URLList,externalParamValue(10)
        append  URLList,externalParamValue(11)
        append  URLList,externalParamValue(12)
        append  URLList,externalParamValue(13)
        append  URLList,externalParamValue(14)
        append  URLList,externalParamValue(15)
        
        set mySoundFiles to externalParamCount() - 3
        repeat with i = mySoundFiles + 11 to 22
          set the visible of sprite i to FALSE
        end repeat
        
        set gWidth = the width of cast 3
        set the preLoadTime of member "SWASOUND" to 5
        puppetsprite 2,TRUE
        repeat with i = 11 to 22
          puppetsprite i,TRUE
        end repeat
        set the width of sprite 2 to 1
      end
      
      
      on nowPlaying
        global gWidth
        set the width of sprite 2 = (the percentPlayed of member "SWASOUND") * gWidth/100
        updateStage
      end
      
      on soundUp
        if the soundLevel < 7 then
          set the soundLevel to the soundLevel + 1
        end if
      end
      
      on soundDown
        if the soundLevel > 0 then
          set the soundLevel to the soundLevel - 1
        end if
      end
      
    ここでは、グローバル変数URLListを定義し、そのリストに、HTMLのEMBED Tag内に書かれたswaファイルのURLを順次入れていきます。
    次の「set mySoundFiles to externalParamCount() - 3・・・・・end repeat」ですが、URLが12種類設定されていないときには、指定されている曲たけのボタンを表示させるためのスクリプトです。以下、グローバル変数gWidthの設定、PreLoadTimeの設定、11〜22スプライトのpuppet設定です。
    nowPlayingハンドラは、曲がどのくらい再生されたかをバーで表示させるためのハンドラです。
    soundUp、soundDownハンドラは、ボリュームコントロールのためのハンドラです。

    キャスト8のスクリプト
      on mouseDown
        set mySprite to clickOn()
        repeat with i = 11 to 22
          set the castNum of sprite i to i
        end repeat
        set the castNum of sprite mySprite to mySprite + 20
        updateStage
        stop (member "SWASOUND")
        
        global URLList
        set mySound to getAt(URLList,mySprite - 10)
        set the URL of member "SWASOUND" to mySound
        play (member "SWASOUND")
      end
      
    スプライト11〜22の曲再生ボタンに使用するスプライトスクリプトです。 キャスト9のスクリプト
      on mouseDown
        soundUp
      end
      
    スプライト3のボリュームアップに使用するスプライトスクリプトです。

    キャスト10のスクリプト
      on mouseDown
        soundDown
      end
      
    スプライト3のボリュームダウンに使用するスプライトスクリプトです。

    キャスト16のキャストスクリプト
      on exitFrame
        go the frame
      end
      
    キャスト52のスクリプト
      on exitFrame
        nowPlaying
        go the frame
      end
      
    フレーム1のスクリプトチャンネルに使用するフレームスクリプトです。

    以上で、スクリプト関係は終わりです。

    このShockwaveとEMBED Tagを設定したHTMLファイルを作成します。できましたら、HTMLファイルをネットスケープにドロップしてみましょう。仮にEMBED Tag内に3曲しかURLを指定していないと、以下のように表示され、指定された3曲に関しては、ボタンクリックで、再生されます。


  • E-mail to tomsaito@most-web.com
    [ To Shockwave for Audio Page ]
    [ To Director Top Page ]
    [ To Tom's Home Page ]