How to Use Flash MX Sound Objects
In reading and responding to various Flash MX forums, it seems that the most common mistakes with sound objects involve the improper initial configuration of the sound object. In order to utilize and troubleshoot a sound object most easily, an organized plan for your sounds should be established prior to starting a project. The following are some suggestions for planning your sound objects:
- Decide on a naming convention. One useful convention is to allow the instance name of the sound object to determine all other associated names with that sound object. This will help later as the ActionScript is written, both in making the names easier to recall and in providing the ability to reuse your code. For example, note the following examples:
- Instance name of sound object: myName
- Name of its attached audio file's identifier (its linkage ID): myName01
- Instance name of empty movie clip used as a container for sound object: myNameMc
- Variable name for position: myNamePosition
- Variable name for setVolume: myNameVolume
- When possible, define all of your sound objects on the _root level. For example, create a layer called "Sound Objects" on the _root level. Define all sound objects in the first frame of this layer. This way, the path to your sound object will never be a mystery. If you have ever experienced the madness of trying to determine why a sound will not start or why more sounds are stopping than intended, this will help isolate the problem quickly.
- When sound objects are defined, create a comment field that documents the source of the sound file and the file's name. This will help if you need to track down license issues for sounds in your Flash file later.
- If you assign sound objects to a movie for the purpose of creating independent control of its properties (such as volume), place the movie on its own layer and place no other keyframes on that layer. For example: _root.mySound = new Sound(_root.mySoundMc). The empty movie with the instance name of mySoundMc should be on its own layer on the _root timeline with no other keyframes on that layer.
This document copyright © 2005, 2006 by Kenny Bellew of Cowfly.Com Design, kennybellew@hotmail.com