May 1, 2001 - Conditional Flash Playing
May 1, 2001 Conditional Flash Playing Tips: May 2001
Yehuda Shiran, Ph.D.
|
IsPlaying()
method checks if the playhead is moving. You can use this method to create innovative sound combinations. For example, you can play a sound track only if the other sound track is mute.
As a reminder, in order to sonify your page, follow this recipe:
flashsound.js
in the HEAD
section. Download.
HEAD
section.
BODY
section.
onmouseover
event handler to the TGotoAndPlay()
method.
The left three out of the following four links mimic a typical tape recorder control panel. The right link checks if the playhead is moving along the timeline. Mouse over it and find out the answer to the question "IsPlaying?". The link at the second line plays a scale passage, but only if the tutorial is not playing. We do this conditional playing by checking that the tutorial's IsPlaying()
is false
. The tutorial's object is mySoundObj1
, and the scale passage's object is mySoundObj2
. The conditional playing is:
if (!mySoundObj1.IsPlaying()) mySoundObj2.TGotoAndPlay('/scale-event', 'start')
Play around with the links. Start the tutorial. Try to play the scale and see that it does not play. Pause the tutorial. Try now to play the scale. See that it does play now. Continue the tutorial. Can you play the scale now?
Rewind and Play the Tutorial Pause Continue Is Playing?
Play A ScaleHere is the source code:
<HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<SCRIPT>
var mySoundObj1 = new FlashSound();
var mySoundObj2 = new FlashSound();
</SCRIPT>
</HEAD>
<BODY>
<P><A HREF="javascript://"
onmouseover="mySoundObj1.TGotoAndPlay('/',1)">Rewind and Play the Tutorial</A>
<A HREF="javascript://"
onmouseover="mySoundObj1.TStopPlay('/')">Pause</A>
<A HREF="javascript://"
onmouseover="mySoundObj1.TPlay('/')">Continue</A>
<A HREF="javascript://"
onmouseover="alert(mySoundObj1.IsPlaying('/'))">Is Playing?</A></P>
<A HREF="javascript://"
onmouseover="if (!mySoundObj1.IsPlaying()) mySoundObj2.TGotoAndPlay('/scale-event', 'start')">Play A Scale</A></P>
<SCRIPT>
mySoundObj1.autostart = false;
mySoundObj1.embedSWF("earsonly.swf");
mySoundObj2.embedSWF("scale.swf");
</SCRIPT>
</BODY>
</HTML>
Notice we assign autostart to false
. The reason is that the stream example here was set to autostart upon embedding. We can override the Flash behavior with JavaScript commands.
Here are links you can use to download flashsound.js
, earsonly.swf
, and scale.swf
: