Interacting with the browser

Starting Parameters

The OBJECT and EMBED tags used to embed Shockwave have 9 optional parameters called "sw1" through to "sw9". When shockwave starts, we can read these parameters using the externalParamValue lingo function like this:



on GetExternalParameters ()

 externalParameters = [:]

 mx = externalParamcount() 

  if mx > 1 then   

    repeat with i = 1 to mx

      n = externalParamName(i)

      v = externalParamValue(i)

      externalParameters.addProp(n,v)

    end repeat

  end if 

  return externalParameters

end

This is particularly useful if you are using a CMS or server-side scripts to write out the Shockwave embed tags and you want to specify certain parameters for Shockwave.

Communcating while Shockwave is playing

To call a javascript function contained with a webpage from Shockwave, you can use goToNextPage netLingo function, like this:



on SendMessageToBrowser ( aParameter )

  goToNetPage("javascript:VOID(ShowMessage('"&aParameter&"'))")

end

To receive a message sent by Javascript in a browser, Lingo provides the evalscript function. Basically, Javascript calls the EvalScript method of the Shockwave object and in the Shockwave movie, you write a on EvalScript function to handle the message. However, EvalScript doesn't work with Safari or Firefox. If you have Director MX2004, then you can use Director's Javascript and a flash object to communicate with the browser. See Valentin's adaption of " JavaScript Integration Kit" for Director Shockwave (actually, for anything you get stuck with, you should have a look at Valentin's site).

First published 24/06/2006