Embedding Sound with Flash, Part I: The Basics
The SWF File Format
Here are some of the objectives that guided the development of SWF:
- On-Screen display. Supports anti-aliasing, fast rendering to a bitmap of any color format, and animation and interactive buttons.
- Extendibility. The format is a tagged one, so you can extend it without hurting its backward compatibility.
- Network Delivery. The format was designed for efficient delivery of graphics over the Internet. The files are compressed and they do support incremental rendering through streaming.
- Simplicity. The format is simple to allow for a simple player.
- Independence. Files can be displayed without any dependency on external stuff. SWF files don't need fonts from the system, for example.
- Scalability. Files degrade gracefully on cheap hardware.
- Speed. Files should be rendered very quickly and in a high quality.
SWF files may include both sound and animation. They can also be sound-only files. The SWF file consists of frames which are ordered along a timeline. Therefore, these sound files are sometimes referred to as sound only timelines. Each frame has a name and may include sound and labels (examples:
fadetostop). You control the playback of an SWF file by specifying the frame name and the label inside the frame (
stop, etc.). Imagine that the Flash player (or any other compatible player) is a playhead. You have control over the playhead. But the control is limited to a very limited set of commands. You can ask it to go to a certain frame and to a certain label in that frame (
fadetostop, etc.). Once the playhead is in motion, you cannot interfere with it. The sound will stop only after the playhead will reach a stop label inside the frame. For example, you cannot command the playhead to stop or to play. You don't have control over the playhead other than asking it to go to a certain frame and a certain label inside the frame. Once the sound starts, the playhead continues down the timeline. To stop a playback, you need to send the playback to a
stop label in the same frame.
Next: How to sonify links