Home > Products > Director > Support > Release Notes
Macromedia Director Support Center - Release Notes
Director 8.5 Release Notes

What's New
Documentation Addenda - tips, tricks, complexities, and gotcha's in Director 8.5
Documentation Issues - contains corrections to the documentation that ships with the product
Known Issues - information about known issues that exist in this version of Director.
Welcome to the Director 8.5 Shockwave Studio Release Notes. This document contains late-breaking information about Director 8.5 that is not in the documentation.

In addition to reading the documentation, please visit the Director Support Center for the latest TechNotes and troubleshooting information about Director, including articles with tips and techniques on using Director, printable documentation, and more.

What's New

To learn about the new features in Director 8.5, consult the Director Help as well as Macromedia's web site.
A new item has been added to the Shockwave context menu, 3D Renderer. The default 3D renderer may be changed during Shockwave playback by changing a preference in the properties dialog. To access it, right/control-click on any Shockwave movie and select "3D Renderer".
The new lingo property, the debugPlaybackEnabled replaces the Shockwave.ini or projectorName.ini functionality that was introduced in Director 8. Note that on the Macintosh, Shockwave does not have the ability to open a message window, instead, a text file is created in the Shockwave 8 folder, where "put " statements from a movie are written.
Watcher and Debugger variables now have a rollover Tooltip that displays the value of the variable. Lists and propertyLists can now be evaluated debugged more easily.
Documentation Addenda
3D, Behaviors
3D, General
3D, Text
Save as Java
3D, Bones and Keyframe Animation
3D, Havok Xtra
        3D, Cloning
3D, Lingo
3D, Exporter
3D, Renderer

3D, Behaviors

3D Action behaviors, whose name includes the word "Drag", such as "Drag Model" use a "Mouse Left", or "Mouse Right" trigger. They are not intended for use with "Mouse Within", "Mouse Enter", or "Mouse Leave" trigger.
The behavior "click on model to go to Marker" only works on one model per sprite, unless you assign each model to a different group.
The Behaviors 'Show Axis' and 'Toggle Redraw' will not work with 3D Text unless the sprite is Direct to stage and a hardware renderer is used.

3D, Bones and Keyframe Animation

When registering for event callbacks or registrations, it's important to verify that the handlers exist first, as these event callbacks fail silently. Here is a Lingo example to verify the existence of the handlers prior to registering the #animationStarted and #animationEnded events to use 'on startOfAnim ' and 'on endOfAnim ' handlers, respectively.
if me.handler(#startOfAnim) then
#startOfAnim, me)
else alert "Can't find the handler" & #startOfAnim 
if me.handler(#endOfAnim) then
#endOfAnim, me)
else alert "Can't find the handler" & #endOfAnim 
The symbols returned from motion.type aren't the same symbols as the modifiers that they correspond to, e.g. #bones does not equal #bonesPlayer , and #keyframe does not equal #keyframePlayer .
Removal of the #keyframePlayer or #BonesPlayer modifier will result in the loss of the animation state. In models with multiple roots, the bones will not be properly aligned.
In models with multiple roots, the bones will not be properly aligned.
Shockwave 3d contains two playlists for queuing and playing lists of animations (#bonesPlayer and #keyframePlayer ). While these seem very similar to the Sound Channel playlists, there is one distinct difference: Sound removes a queued item from the list when a new sound starts playing. 3d removes the item when the animation ends.

3D, Cloning

When cloning a model that has the collision modifier attached to it, everything except the assigned callbackHandler will be passed on to the clone. Therefore, a callbackHandler should be assigned to the cloned model.
If a model is deep cloned, the values of resource.lod.level and will not be cloned.
After deleting a light, any clone of the light will become disabled. Specifically, it will not contribute to the lighting of the scene, it cannot be deleted, and any access of its properties will result in an error message.

3D, Exporter

The exporter for 3D Studio MAX only works with version 3.1of 3D Studio Max.
When a scene with multiple animations is exported from MAX, all animations have their durations set to the length of the longest animation. In Director, this means that the other animations will be padded with blank time. Some workarounds include authoring all animations to begin at time zero and specifying the endTime parameter to be at the animations actual end when using queue() or play() , or exporting just the motions individually (without geometry), and importing these animation-only W3D files into the cast and using cloneMotionFromCastmember to use the animations in the member that you wanted them in. Also, loadFile() can be used to load and merge them from disk files but this has some limitations in the Shockwave environment.

3D, General

When authoring movies in Shockwave 3D for large audiences, it's recommended not to use 3D features known to be problematic on some older video cards. For example: points, wire-frame, large textures (greater than 512x512), large numbers of polygons, or fog. It is also recommended to author movies such that texture maps exist in consecutive layers.
Calling resetWorld() will invalidate all Lingo references to 3D scene objects. This includes globals, as well as any existing references before the call to resetWorld() was made. Attempting to access these deleted objects will result in an object deleted script error.
Shockwave3D members require the following Xtras to be present at runtime: the Shockwave3D, INetURL and NetFile Xtras.
If there are two consecutive 3D sprites in a movie, a "flashing" may occur. Overlapping the two sprites by one frame reduces the appearance of this.

3D, Havok Xtra

In the Havok Documentation in Section 1.1, "Xtra Behavior Reference", it is assumed that either the Physics (HKE) or Physics (no HKE) behaviors are already attached to the sprite. Not attaching either of these behaviors results in the following script error when following this example:
Script Error: Property not found
pHavok = pSprite.pHavok
In Section 2, "Xtra Behavior Reference", of the Havok documentation it is incorrectly claimed that Havok behaviors are accessible through the Director's Cast Library dialog box. These behaviors are not included in the default installation of Director's Libs folder. To use the Havok behaviors within the authoring environment:
1 Copy the Havok Behaviors folder (located in the Havok directory on the installation CD) into the "Libs" directory located in the root Director folder
2 Launch Director.
3 Select Window->Library Palette->Havok Behaviors.
The havokRef.rigidBody() function is case-sensitive.

3D, Lingo

Do not use "go to the frame " in a callback handler, such as for a collision. A workaround is to set a global or behavior property in the collision handler to flag when you want to exit, then check the state of this in an exitFrame handler and execute the "go to the frame " there.
The three properties ambient , diffuse and blend , are shared by the shader , inker and toon properties of a model. Setting these values for one will set them for all.
Setting the floatPrecision of a vector to a high value will result in values with lesser precision, rather than using the default float precision. The default float precision is 4. Transforms do not obey the floatPrecision.
To access and set the individual x, y, or z components of the axisAngle property, use transform.axisAngle.z (or x or y ), as this property does not support list access such as transform.axisAngle[1][1] .
Changing the value of the color of a light or its clones will result in all the lights having the same value.
The lingo sendEvent() will only send messages to scripts registered via registerForEvent() . It does NOT send messages to scripts registered via member.model(1).registerscript() .
If two models are contacting each other and each has the #collision modifier attached, you may experience a failure when switching focus into and out of the projector or Shockwave window.

3D, Renderer

Installing Director 8.5 does not install the Unsupported Drivers List, which bypasses hardware functionality for a specified renderer if the associated display driver is known to have serious issues. The Unsupported Drivers List is only installed via the Shockwave 3D plugin installation. However, both Shockwave 3D and Director 8.5 utilize the Unsupported Drivers List.
As some renderers have slower frame rates than others, it is possible to create a movie that plays correctly with one renderer (e.g. the software renderer which is slower) but will not render correctly with a different renderer (such as a hardware renderer, which is usually faster).
The 3D rendering quality and stability in a multiple monitor configuration is totally dependent on the quality of the video cards and their drivers. Dual monitor configurations may experience poor 3D graphics performance, on both Windows and Macintosh operating systems. Users are recommended to use newer video cards and the latest drivers possible. If problems still exist after updates are applied, users should contact the manufacturers of their video cards.
In software, and in DirectX, specular lighting is applied "on top" of textures. By default, OpenGL adds specular lighting "below" textures. Director takes advantage of an OpenGL extension that makes the results resemble DirectX and software, but not all video cards or OpenGL implementations support this extension. The Macintosh, for example, does not support this extension.
Flat shading on a Mesh primitive will have different results, depending on whether the OpenGL or DirectX renderer is used.


Apple's OpenGL installer may overwrite some of your existing graphics card OpenGL Extensions. It's advised to reinstall your graphics software after adding Apple's OpenGL.
OpenGL does not support non-direct-to-stage 3D sprites. In this case Director will switch to the Software renderer.
On Windows, systems with Dual Monitor support do not offer OpenGL. Authoring and Playback will only offer DirectX or Software rendering.
To utilize the DirectX 7 renderer, users must have DirectX 7 or higher installed on their machines. To get the installer, please go to
With hardware OpenGL rendering, 3D objects may appear much darker than with DirectX or software renderers, and the specular highlights aren't as visible.
Director 8.5 and Shockwave 3D may experience 3D rendering glitches if a Windows system has a version of DirectX installed that is actually lesser than what an installed display driver requires. This is is not a Director/Shockwave issue. The user must download a newer version of DirectX from Microsoft's web site: In other words, a display driver made for DirectX 5 will likely work fine on a DirectX7 system. However, a DX7 display driver could have problems functioning on DX5 system.


When using the Software renderer, copying too many 3D sprites to the Stage can cause Director to close with an error message, as the software renderer uses more memory than the hardware renderers. This is because it doesn't have access to video memory, and it doesn't compress textures.
TextureRepeat is always true when in software mode.
The software renderer can not perform the following 3D functions: points, wire-frame, flat shading, near-filtering (anti-aliasing). Also, when rendering 32-bit RGBA-8888 textures, the software rendered image has a banded look because there's no texture filtering support.

3D, Text

If you wish to have a 3D text sprite open in the Shockwave 3D Media Viewer, open File>Preferences>Editors, select 3D Text, click Edit, and select Edit 3D text in Shockwave 3D. Once you have selected the Shockwave 3D media viewer as the default editor for 3D text, you can edit the cast member by either selecting the sprite on stage and hitting RETURN, or selecting the cast member in the Cast window, Score, or the thumbnail image on the Property Inspector and double-clicking or pressing RETURN.
The SDS (subdivision surfaces), and the LOD (level of detail) modifiers do not work with 3D Text.
The Sprite Transition behaviors in the Behavior Library do not work with 3D Text.
When applying a texture to text that is extruded into an empty #Shockwave3D member, the texture member must be before the 3D member (in the cast) or the texture will not appear.
For text that has been extruded into a 3D cast member, it may be necessary to rotate the text to face the camera, or vice versa.
Convert to bitmap does not work for 3D text cast members.
The Lingo shaderList[x] applies the shader to the character number delineated by x , i.e. shaderList[2] would apply the shader to the second character in the text cast member.
Underline and scrollbars do not work with 3D text.
If textures on a 3D Text member appear to be "flickering" or misaligned, set the textureRepeatMode to FALSE . This only appears with certain combinations of video cards and renderers.


Copying and pasting sprites or cast members across different versions of Director is not supported.


The user must have administrator privileges to install Director on a Windows 2000 system.


Developers should be very careful when using circular references within their code, such that
x = [1,2,3]
y = [4,5,6]
y[3] = x
x[3] = y
X has a reference to y, y has a reference to x, this is a circular reference that should be cleaned up by the developer to prevent memory from leaking. Circular references may also occur in parent-child scripting where an ancestor has reference to its child. An example is when the ancestor keeps a list of all the instances of all the scripts that inherit from it, and each inherited script keeps a reference to its parent. In this case, each instance will be leaked, and should also be disposed of after use. Although Director will clear any memory that it has used when quitting, it is up to the developer to do so in cases such as this.
The Director continuation character from previous releases, the ¬ character, will cause a script error if the scripts are recompiled in the authoring environment. The continuation character introduced in Director 8, the \ character, should be used instead. This will not break any existing projectors or Shockwave movies, even if they are played by the Shockwave 8.5 plugin.

Save As Java

The Save as Java installer is not included in this release.


Developers creating Shockwave movies may find that their .dcr file size is reduced by 500 to 1000 bytes if they Recompile All Scripts and Save the movie just before Publishing.
The preload property of externally linked Shockwave3D cast members forces Director to completely load that cast member before it starts playback, except in Shockwave. In Shockwave, it forces the cast member to start streaming once the movie starts. This is consistent with the behavior of Flash cast members. It is therefore important to check the 3D member's state property to ensure that at least the header is loaded (state >= 2 ) before trying to perform any 3D Lingo on that cast member.


When using the Sound Lingo introduced in Director 8, you should use channels 3-8 for Lingo-controlled sound playback to eliminate any conflicts with score sounds that play in sound channels 1 and/or 2.
When previewing sounds in the Property Inspector, Director uses channel 1 to play the sounds. This means that is you have setup a queue for channel 1, using the Property Inspector to preview a sound will clear this queue.
Use sound(whichChannel).status <> 0 instead of soundBusy( whichChannel ) when determining if a sound channel is available or in use. Status gets updated directly from the channel engine and tracks changes made by the other new commands more quickly and accurately.
Documentation Issues
3D Lingo Additions
Lingo Dictionary
Online Help
        3D Section of What's New
Multiuser Server Section of What's New
Using Director
3D Lingo Dictionary additions
The syntax for the debugPlaybackEnables property entry is incorrect. The correct syntax is:
the debugPlaybackEnabled
The generateNormals entry contains incorrect references to #face . The correct symbol is #flat .
The properties targetFrameRate and useTargetFrameRate have been added to 3D sprites. The targetFrameRate property indicates the desired number of frames per second when rendering the sprite. The default value is 30 frames per second. If the useTargetFrameRate property is TRUE , the polygon count of the models in the sprite will be reduced to achieve the specified target frame rate. By default, the useTargetFrameRate property is FALSE .
To set targetFrameRate , use the following syntax:
sprite(which3dSprite ).useTargetFrameRate = TRUE
sprite(which3dSprite ).targetFrameRate
A textureList property of shaders has been added. It uses the following syntax:
A shader can use up to eight layers of textures. This eight-element list defines which texture is used for which layer.
When tested, this property returns a list of texture objects, one per layer.
When set, this property specifies a texture object to be applied to all layers. An argument of void disables texturing for all layers. The default is void .
To test or set the texture object for a specific texture layer, use list brackets to specify the layer.
member().model().shader().textureList[index ]
The smoothness entry should not contain a cross-reference to the numSegments entry. These terms are not related.
The removeModifier entry should contain cross-references to the addModifier , modifier , modifier[] , and modifiers entries.
The addModifier entry should contain cross-references to modifier and modifier[] .
The example in the removeOverlay entry incorrectly contains square brackets ([] ). The correct example syntax is sprite(5).camera.removeOverlay(1) . The syntax for the removeOverlay() and removeBackdrop() commands is modeled after the deleteAt() command, which is used to edit lists.
The sizeRange property of particle system resources contains two subproperties. The sizeRange.start property indicates the size of the particles at the beginning of their lifespan. The sizeRange.end property indicates their size at the end of their lifespan. These two properties should be listed as separate entries in the 3D Lingo Dictionary.
The 3D Lingo Dictionary contains entries for both the fieldOfView and projectionAngle camera properties. These properties are identical; it is recommended that you use only the fieldOfView property.
The registerForEvent() entry should include a cross-reference to the unregisterAllEvents() entry.
In the "3D Lingo by Feature" chapter of the Lingo Dictionary, the section "Text (3D)" should list the autoCameraPosition entry.
If you use non-uniform scaling and a custom pointAtOrientation on the same node, e.g., a model, calling pointAt will likely cause unexpected non-uniform scaling. This is due to the order in which the non-uniform scaling and the rotation to properly orient the node are applied. To workaround this issue, you have a few options:
1 Avoid using non-uniform scaling and non-default pointAtOrientation together on the same node.
2 Remove your scale prior to calling pointAt , and then reapply it after. For example:
scale = node.transform.scale

node.scale = vector( 1, 1, 1 )
node.pointAt(vector(0, 0, 0)) -- non-default pointAtOrientation

node.transform.scale = scale
The Lingo command scale() for transforms will also accept a vector.
The bgColor property of 3D cast members has been added. This property controls the the background color of 3D cast members and can be set to any valid RGB value using the following syntax:
member(whichMember ).bgColor = rgbValue

3D sections of What's New in Director 8.5

The member().model().modifier property should be included in the list of properties available with models. This list appears in Chapter 7, "Working with Models and Model Resources."
The smoothness property of 3D text has a maximum value of 10. This is incorrectly stated as 100 in Chapter 5, "Using 3D Text."
In Chapter 3, "3D Basics," the "3D World" section contains the following inaccurate sentence:
"Shaders are assigned to model resources and are shared by all models based on that model resource."
The sentence should read as follows:
"Shaders are assigned to individual models."
In Chapter 7, "Working with Models and Model Resources," the section "Properties of the standard shader" contains a description of blendFunctionList incorrectly stating that #alpha and #constant are possible values of this property. These values are not available with blendFunctionList .
In Chapter 5, "Using 3D Text," the "Lingo for 3D text" topic of the help system contains the following sentence:
"For those methods and properties that don't work with 3D text, see Exceptions."
This sentence should read as follows:
"Most normal text Lingo also works with 3D text. For those methods and properties that don't work with 3D text, see Exceptions."
In the "Exceptions" section, the sentence that introduces the table should read as follows:
"The following commands and properties used by normal text do not work as expected with 3D text."
In Chapter 5, "Using 3D Text," the "New Lingo for 3D text" section should include the autoCameraPosition entry in the table.
Information on preparing 3D content for use in Director 8.5 is available in an article in the Director Support Center on Macromedia's Web site. This article also provides information about using the 3D SpeedPort Xtra for Director 8.5, which is used to convert 3D OBJ files into W3D files.

Lingo Dictionary

The mostRecentCuePoint entry should contain cross-references to the cuePointTimes and on cuePassed entries.
The currentTime property can be set only for traditional sound cast members (WAV, AIFF, SND).
The links to the Show Me and Example movies are incorrect in the following Lingo Dictionary entries: frameReady() , map() , mediaReady , and on streamStatus . The example movies for these entries can be found in the Director 8.5/Show Me folder.
The soundChannel entry should contain a cross-reference to the currentChannel entry.
The play() command should be included in the "Sound" section of the "Lingo by Feature" chapter.
The channelCount() property can be tested for sound members only. It returns an incorrect result when used on sound channels. The channelCount() entry contains incorrect references to sound channels.
The repeat with entry contains the following syntax:
repeat with counter = start  to finish  
The last line of this example should be changed to the following:
end repeat
The rateShift property of queued sounds can now be set using cents. A cent is 1/100th of a semitone. Specify cents by using floating-point numbers with two decimal places, such as 1.35, where the integer 1 is a semitone and the decimals .35 indicate cents.
The copyToClipboard entry contains incomplete information. You can use this command to copy cast members between movies, and for fields, bitmap cast member, and sound cast members. You can also use this command to copy cast members into other applications.
The "Text" section of the "Lingo by Feature" chapter of the Lingo Dictionary incorrectly contains a list of Lingo elements used with the text boxes of field members.
The lists of Lingo elements used with buttons and menus can be difficult to find. They can be found in the "Interface Elements" section of the "Lingo by Feature" chapter.
The disableImagingTransformation entry contains incorrect syntax. The correct syntax is as follows:
the disableImagingTransformation
The "Lingo by Feature" chapter contains a list of elements for performing run-time imaging operations. This list is found in the "Bitmaps" section of the chapter.
The scrollByLine entry in the Lingo Dictionary incorrectly states that lines are defined as lines separated by carriage returns, not lines caused by wrapping. Lines that are wrapped will count as a separate line.
The type property of cast members should now include the #shockwave3D value for 3D cast members.

Multiuser Server sections of What's New in Director 8.5

The getUserCount server command can use a list syntax to retrieve information about more than one server movie at once. The following syntax should be used:
anySubject, ["Movie1", "Movie2"])
In the "Multiuser Server-Side Scripting" chapter, the "About server-side script objects" section contains an example introduced by the following sentence:
"These statements create a parent script from the text of the file"
This first sentence makes an incorrect reference to parent scripts. It should read as follows:
"These statements create a global script from the text of the file"
In the "Multiuser Lingo Dictionary" chapter, the setBreakPoint() entry contains the following incorrect statements:
"In order for a breakpoint to be triggered, it must be set in a handler that is running within a thread created with the new() (thread) command. Breakpoints cannot be set in the server's default thread."
In fact, the main thread as well as threads created with the new() command can contain breakpoints and can be debugged.
The following syntax will clear all breakpoints within a script object:
scriptObject.setBreakPoint(-1, -1, 0)
A changeMovie command has been added to the server.
This server command is used to switch users from one movie to another while maintaining the connection to the server. The command causes the user to log out of the existing movie, leaving all groups, losing run-time attributes, and so on, just as if the user was logged off. The user is then logged on to the new movie specified by "SomeMovieID " using the same user ID, password, and moviePath info from the original connection. This is intended to make lobby applications easier, because you can switch to a new movie without having to make a new connection to the server.
The changeMovie command uses the following syntax:
errCode = 
"anySubject ", "SomeMovieID ")
The sendNetMessage() command can be used with an optional property list syntax. The optional syntax is as follows:
whichUsersOrGroups , #subject: "Example Subject ", #content: 
whatMessage ])
The getUserNames server database command should be included in the "Multiuser Lingo by Feature" chapter's "Database commands" section.
Two new thread properties are now available for managing thread activity: runPeriod and sleepPeriod . These properties can be used to define the amount of time a specified thread spends using the CPU and sleeping.
The runPeriod value is specified in milliseconds and indicates the amount of time the thread will make use of the CPU before going to sleep. The run period will only expire if the thread is actually executing Lingo and therefore using the CPU. An idling thread will not expire its run period. However, this condition will not interfere with the execution of other threads. If runPeriod is set to 0, the default, the run period is effectively infinite.
Set runPeriod using the following syntax:
aThreadReference .runPeriod = timeInMilliseconds
Note: A property called abortCheckPeriod has been added to the Multiuser Server's file. This file contains code that checks for threads that have been running longer that the period of milliseconds specified by abortCheckPeriod . If a thread is found to exceed the abortCheckPeriod value, it will be halt and return a state of #error . To prevent this, keep the code executed by a single thread limited to that which can be run in a period shorter then the value of abortCheckPeriod , or increase the value of abortCheckPeriod . The default is 5000 milliseconds.
The sleepPeriod value is specified in milliseconds and indicates the amount of time the thread will sleep when its run period expires. When a thread is sleeping, it does not execute any code and does not use the CPU. If the run period expires while code is being executed, that code does not resume executing when the sleep period expires. If a handler is interrupted in this way, it will need to be called again when the thread stops sleeping. For this reason, individual threads should not be given more than one task to perform.
Keep in mind that repeat loops should be avoided or kept short, because they are the only Lingo code structure that uses the entire capacity of the CPU and will lock out other threads.
Set the sleepPeriod property using the following syntax:
aThreadReference .sleepPeriod = timeInMilliseconds
A file has been added to the Multiuser Server's Scripts folder. If you have handlers that you want to execute from any client movie, place them in this file. You can then call those handlers from any movie as if they were located in the specific script file associated with that movie. You can also add your own global script files by appending them to the globalScriptList variable in the file.
A scriptObjectList handler has been added to the file. If you have scripts that you intend to use as parent scripts for creating child objects, add them to this list. Using Lingo, you can then call the Dispatcher file's findScriptByName handler to create a reference to your desired parent script:
myRef = findScriptByName("MyParentScript")
And then use the new() function with the script reference you just created:
myChildObject = new(myRef)
Because of new debugging functionality mentioned in the Multiuser documentation, the following line should be removed from the file
-- theMap.append( [ #movieID: "Debug", #groupID: "@DebugGroup", 
#scriptFileName: "" ] )
ChangeMovie syntax - recipient: System.User.ChangeMovie content: "SomeMovieID ". This command is used to switch users from one movie to another while maintaining the connection to the server. The command will cause the user to log out of their existing movie, leaving all groups, losing runtime attributes, etc. just as if they are logged off. They are then logged on to the new movie "SomeMovieID " using the same userID, password and moviePath info from when they originally connected. This was originally requested to make lobby applications easier - you can switch to a new movie without having to make a new connection to the server.

Online Help

If you're a Macintosh user running Mac OS 8.6 or earlier, you may need to install a later version of Mac OS Runtime for Java to use the Director Help Search feature. It is available for free on the Director 8.5 CD or for download from the Apple Web site at:
When you use America Online version 4, launching the electronic help can cause a JavaScript alert to appear. You can ignore this alert.
Shockwave is required to view the Show Me movies referenced in the Online Help.
The Help system may not launch if AOL is chosen as the default browser in Director. It is suggested that the user change the default browser in Director to IE or Netscape.
There are no links to the Guided Tour movie in the HTML Help. The Guided Tour can be launched by double-clicking the Guided Tour.htm file in the Guided Tour folder.
The documentation for the Xtra for RealMedia can be found on Macromedia's Web site at

Using Director

In the "Getting Started" chapter, the section "What's New in Director 8" contains a cross-reference to imaging Lingo. This reference incorrectly leads to "Controlling bitmap images with Lingo" section of Chapter 12, "Vector Shapes and Bitmaps." It should lead to the subsection "Creating image objects," which is within the "Controlling bitmap images with Lingo" section.
In the "Getting Started" chapter, the section "What's New in Director 8" should include a link to the new section "Creating timeout objects" in Chapter 11, "Parent Scripts."
In the "Getting Started" chapter, the section "What's New in Director 8" contains an item about multiple curve vectors that incorrectly cross-references the section "Drawing vector shapes" in Chapter 12, "Vector Shapes and Bitmaps." This reference should lead to the subsection "Using vector shape drawing tools," which is within the "Drawing vector shapes" section.
In the "Getting Started" chapter, the section "What's New in Director 8" contains an item about the Publish command that incorrectly cross-references the section "Creating Shockwave movies," which is within Chapter 17, "Packaging Movies for Distribution." This reference should lead to the subsection "Using Publish default settings," which is within the "Packaging Movies for Distribution" section.
In the "Writing Scripts with Lingo" chapter, the section "Understanding the order of messages in a movie" contains an unclear description of when the startMovie event occurs. The text currently says: "This event occurs in the first frame that plays." The startMovie event actually occurs after the prepareFrame event for frame 1 and before the enterFrame event of frame 1 of the movie.
In the "Sound, Video, and Synchronization" chapter, the section "Playing Shockwave Audio and MP3 audio with Lingo" should contain references to the following Lingo terms, which can be found in the Lingo Dictionary: id3Tags , mpegLayer , currentChannel , currentTime , cuePointNames , cuePointTimes , isPastCuePoint , mostRecentCuePoint , and on cuePassed() .
The currentChannel property has been added for Shockwave Audio sprites and members. This property displays the number of the sound channel actually used by the specified SWA member or sprite. This is useful because SWA members default to 0 as their channel assignment. When the SWA member plays, Director finds an unused sound channel (starting with channel 8 and searching toward channel 1) and assigns that channel number to the member. This property can be tested but not set.
To test this property, use the following syntax:
member(whichSWAMember ).currentChannel
The Using Director > Playing Movies over the Internet > Setting movie playback options section indicates that the Play Movie While Downloading option in the Modify > Movie > Playback dialog box is on by default. In Director 8.5, this option is off by default.
Known Issues
3D, General
Fireworks Importer/Exporter
3D, Lingo
Flash Asset
3D, Renderer
        Multiuser Server
Vector Shapes
3D, Text
QuickDraw Shapes

3D, General

An issue has been identified that could result in the corruption of video data shared between AGP graphics adapters and AMD Athlon or AMD Duron processors when running Microsoft Windows®2000. To correct AGP graphics problems and system hangs, please visit:
Resetting the time of a particle system in the Shockwave3D Viewer window will cause the particles to implode.
If you remove a camera from a 3D world, you can still get the view from that camera.
Frame-rate performance is impaired if any other window overlaps a 3D sprite. We suggest using Full Screen mode for previewing playback. This may also cause compressed sound to break up on playback.
When using the Shockwave 3D viewer to change the position of the camera on a 3D text sprite, you will notice that setting the camera transform results in changing the position of the directional light to be consistent with the new camera position. This means the sprite will appear differently in the media viewer than on stage. If you would like the position of the light to be unchanged, use Lingo to reposition the text member, or create your own lights.
Using resetWorld() , the Lingo command or the button in the Shockwave3D viewer, with 3D text will only reset camera in sprite, not in viewer window. This command will only reset the camera.
Updates to the Property Inspector values for 3D member's cameraPosition and cameraRotation are not get reflected in the 3D Viewer Window if it is open.
If a new texture is applied to a model that also has a reflection map, the Shockwave 3D Viewer window may only display the reflection map of the model.

3D, Lingo

Key events cannot be handled in a movie script, they must be caught at the sprite level when a 3D sprite is present.
You cannot reliably add modifiers to 3D Text in a text cast member by using an on beginSprite handler. A possible workaround is to extrude the 3D text into a Shockwave 3D cast member, or use another handler other than on beginSprite .
If animations have played out, or have had a playNext() issued to them, or are in the playList , then the 3D Window will not preview them. A workaround is to press the resetWorld() button to reinstate the model's cast member.
If the rotationReset property of bones or keyframe animations is changed to any setting other than #all (the default) then using positionReset will cause positional displacement to be applied relative, rather than absolutely. Also, if positionReset = TRUE and make rotationReset other than all, you'll get unexpected results.
Setting the axis of transform.axisAngle while the angle is equal to 0 has no effect.
Only a part of a biped model may appear when #keyframeplayer modifier is added. This problem only occurs when a biped model sprite starts from a frame other than 1. If a biped model sprite starts at frame 1, this problem does not occur. When you play the movie for the second time (or when you stop the movie), the biped model properly appears.
Specifying an offset outside the startTime , endTime range can lead to unexpected results:
Specifying offset smaller than startTime will lead to a time delay of startTime - offset milliseconds before animation begins.
Specifying offset greater than endTime results in a startTime of startTime + (offset - endTime) .
Do not attempt to preload a 3D cast member in an on beginSprite handler, as this will fail because the cast member's media may not have been downloaded yet. A possible workaround is to preload it in an exitFrame handler.
You cannot normalize a transform's position , as transform.position.normalize() as it does not actually normalize the position . This also applies to any vector property such as the direction of a particles emitter.
Setting the blendTime of a bones animation to a negative number will stall the animation. Setting the value to zero may result in the animations occuring in the wrong order.
Using member(whichCastmember).model(whichModel).update updates the bone structure of the model, however this update is not redrawn, it only triggers an update of the bones structure to the simulation time when the current handler is entered.
On the Macintosh, camera.transform.position is different if the model is imported via loadFile() than it would be if it is inserted or imported.
After deleting a texture that was used as source for a camera's backdrop , the source of the backdrop will return <void> . However doing so for a camera's overlay results in a script error.
It is not possible to assign a shader to a model that does not have a modelResource .
With mesh primitives, adding a third texture layer in a scene that has fog enabled can cause the fog to change color.
On the Macintosh, when using generateNormals with the #smooth option, the mesh normals aren't really smoothed. The issue lies with the OpenGL renderer not producing specular data.
The #collision modifier has restrictions on the allowed collision modes. Allowed collision modes are:
The other combinations will resolve as following: sphere/mesh and box/mesh will resolve to sphere/sphere and box/box repectively.
Note: A bounding sphere is larger that the model. Therefore Mesh/Sphere does produce huge collision meshes that will probably not produce the results you are looking for, as it checks for sphere/sphere.
Scaling the camera view can affect the rendering of large models in the scene, therefore it is suggested that users do not scale the camera or any object that is its parent.

3D, Renderer

With OpenGL 1.2.1 installed on Mac OS 8.6 Spanish, any application (including Director) that uses OpenGL will crash.
Switching from millions/thousands of colors to 256 colors will change the renderer to #software . However this not refelected in the Property Inspector as the active3Drenderer , it will list the the previous renderer used.
After installing new display drivers on Windows 2000, it is suggested that the user reboot, as Windows 2000 does not always require one to restart the system after a driver installation or update. Restart Windows 2000 so that the Registry changes take affect, and Director will correctly detect the hardware.
Avoid changing the screen color depth while 3D content is active.
On Windows95, getRendererServices().getHardwareInfo() may return incorrect data, if more than one card has been introduced to the system.
On Windows machines with DirectX 7 installed, Reflection maps & Diffused Light maps fail to render correctly. This happens when texture maps are applied in non-consecutive rendering layers. This issue may exist on a range of other vendors' products. Users are advised to download the latest driver from their video card manufacturer's website.
You cannot use the OpenGL renderer when running on MacOS X in classic mode.
On the Macintosh platform, Shockwave 3D (in authoring or playback) does not appear on the second monitor when mirroring the same display to two monitors.
For example, if a user wants to mirror Shockwave 3D movies on both a laptop display, as well as another monitor for a presentation - the user must switch to the Software Renderer. In authoring, this can be done via the Movie pane of the Property Inspector. In browsers, switching rendering settings can be done by Control-clicking on any Shockwave content, and changing the 3D Renderer.
Complex polygon rendering can look distorted, depending on the near/far range of the visible set of objects in the scene, and how nearly co-planar polygons actually are. Per-pixel sorting problems with the z-buffer become more pronounced as the near/far range grows. A practical workaround, other than eliminating the aforementioned conditions, is to increase the camera.hither value.

3D, Text

Director will not display more than 65 3D text characters in one sprite.
Making changes to the tunnelDepth of a 3D text sprite while it is rotating will result in the camera changing position.
Adjusting the smoothness of an animating 3D text sprite causes Director to hang.
Converting a large number of text sprites to 3D simultaneously may cause some machines to hang or crash.
Enlarging the bounding box of 3D text while the viewer window is open will cause the Viewer window to zoom in on the 3D text sprite
The thumbnail for a 3D text cast member will appear exactly like that of a 2D text cast member.
If a character appears as a cube, the user may want to change the location of the character or the alignment of the text cast member.


The Ticker Tape behavior when used with 2D or 3D Text may cause Director to run out of memory if the text sprite's Word Wrap property is set to TRUE in the Property Inspector.
The Chat behaviors will not work unless the spritespans of the Login button and Chat Input field include both the login scene and the presentation scene.


Adjusting the blend of a field or a button sprite to less than 100% causes the text of that sprite to be displayed incorrectly, this occurs only on the Macintosh platform.

Fireworks Importer/Exporter

Setting the compression for a bitmap cast member to JPEG in the Property Inspector's Bitmap tab may not cause that cast member to default to Format=JPEG in the "Optimize in Fireworks" window. If this occurs, then manually select JPEG as the format option in the "Optimize in Fireworks" window.
In the Fireworks 4 Import Xtra, the Property Inspector erroneously reports the bit depth as 32 bits, not 24 bits, after importing an image that is 24-bit. This occurs on Windows only.


A sound will play in an imported Flash movie even though the Flash sprite is stopped. Use the Lingo property pausedAtStart to ensure that the sprite's cast member is paused.
If there are an extremely large number of Flash 5 cast members in a movie, a crash may occur when the movie is played back in a projector. To help avert this condition, make sure Use System Temporary Memory is enabled in the Projector Options dialog box.
When using the Flash 5 Asset Xtra, actions in Embedded Flash content may be evaluated out of order.


On the Macintosh, you cannot set the rect or drawRect properties in the list view of the Property Inspector.
Director will crash if a Shockwave movie is placed in the score after opening it in a movie in a window.
Selecting JPEG compression for your movie will propogate the change to externally linked casts. Unselecting it will not propogate that change back; you must manually unset that setting in each external cast.
Projectors with "Animate in Background" turned off will have cue points and sound channel information confused when they lose and then regain focus.


On Windows, there are problems with Ctrl-Alt key with French standard keyboards. Pressing AltGr+<any key> has no effect in a movie in a window. In French and German the Ctrl-Alt key combination won't give you special characters when using the Text, Field, Script, or Message windows. This occurs in authoring only.
On Macintosh German and French systems, the characters such as "¨", trema, and registration marks, etc. may have different results from charToNum() than they would on a Windows system. This can also occur on an English system if the movie was created on any high-ASCII Macintosh system.
Lingo is inconsistent with diacritical marks when using the findPosNear() function.


If the MacromediaRuntimeLib for Director 8.5 is placed in the System folder of the Mac OS, Director 7 will fail to launch.
Immediately after installing the Shockwave plugin, viewing 3D content may require that the user reboot, though there is no message prompting the user to do so. This issue has only been seen on very few Windows systems.


On Japanese systems, editable fields will not accept the first confirmation of a character candidate when playing a movie in a window. Hitting the space bar until the window disappears will work.
The lingo property itemDelimiter cannot be set to a double-byte character.
On the Macintosh, sprites' names do not accept double-byte characters in the Cast window when it is in list view.


Korean users need to be aware that double-byte 3D text created on Korean Macintosh systems will not appear correctly when the movie is viewed on Korean Windows systems. In order for the characters to render correctly, embed the font used for the 3D text in the movie.
Korean Macintosh users need to be aware that extruding Korean 3D text is available only with a few types of Korean fonts. Director 8.5 Korean allows only regular outlined True Type Font and Type1 Post Script Font to extrude 3D text. You can't extrude Korean 3D text with Fbit/Sbit True Type Font and Type0/Type3/Type4 PostScript Font.
On Windows Korean systems with Internet Explorer, if the path of the movie contains Korean characters the Shockwave movie may fail to load. The directory name in which the Shockwave movie should contain single-byte text only.


Using me.spriteNum in an isOkToAttach handler will cause a crash. Use the callback's aSpriteType and aSpriteNum parameters instead.
Referring to the scriptInstanceList of an empty sprite disables behaviors for all sprites in that channel.
GotoNetPage will not open a local file in AOL 4 or AOL 5.0. It will function with files residing on an http server.
If you test the value of the keyPressed in a keyDown handler then you will not receive the keyUp event immediately following.
Adding a point to a quad removes the last two points of the quad.
Calling the keypressed , prior to the keycode will cause the keycode to return bogus values.
Setting locZ of sprite results in the sprite redrawing.
On the Macintosh, using setPixel() or getPixel() on 2-bit or 32-bit images will cause Director to hang.
In authoring and in projectors, preloading a movie in another movie will cause that preloaded movie's on startMovie handler to be excuted twice.


Scripts that are created with createScript() in a location other than the dispatcher will need to be explicitly named in order for them to be debugged. The name should be the filename minus the file extension.
On Windows only, UDP messages larger than 12K sent between the client and server both on the same machine are never received. The client sends the data without error, but the server never gets it. The message gets dropped in an internal Windows handling of the UDP packet.
When setting a thread's sleepPeriod with Lingo, the actual sleepPeriod may significantly exceed the value passed in Lingo. A workaround is to explicitly call thread .sleep instead of using the sleepPeriod .


If a 3D cast member is present then the Stretch Style pulldown menu in the Publish Settings dialog is disabled. The workaround is to change the HTML Format from "3D Content Loader" to any other format. It is suggested that the 3D content loader movie not be set to stretch, as it can cause redraw issues on the Macintosh.
In the Publish settings are set to "Stretch To Fill", streaming QuickTime movies unload and reload and drop audio, on start up and whenever the browser is moved or sized.
For Shockwave movies with 3D content, the movie should use an RGB stage color, not a Pallette Index color.
If you use any of the loader movies found in the Publish Templates folder in the Director application folder, your Director movie will not stream, even if streaming has been specified in the Modify>Movie>Playback dialog box. This is the intended functionality of the loader movies.

QuickDraw Shapes

Unfilled QuickDraw shape sprites show up as blank on stage if you create them after you have created text sprites.


QuickTime will not play in a movie with a Shockwave 3D cast member when you use the DirectX 7.0 renderer. This is due to a conflict between DirectX and QuickTime. We are working with Apple and Microsoft to resolve this issue.


On Macintoshes with the minimum requirements for playback, RealMedia content may not always play.
The Lingo realPlayerVersion() will retrieve the build number of the RealPlayer installed on the system. It does not retrieve the version of the RealPlayer.
If there is more than one RealMedia sprite playing at one time, muting the sound of one sprite will mute the sound of all the sprites.
When using Internet Explorer on Windows, opening two or more browser windows that each contain Shockwave movies that use RealMedia can cause the movies to fail to play back properly.
For RealMedia sounds playing in a Director sound channel, sound().elapsedTime and member().currentTime are not in synch. The currentTime property is more precise in this case.
The sound of a RealMedia cast member will stop playing in a movie in a window when you click the Stop button in the authoring environment.


Occasionally, if Netscape's SmartDownload is enabled, the Shockwave installation may fail on some Windows systems. Disabling this feature in the Browser Preferences dialog box resolves this issue.


Flip H and Flip V do not work properly with text when the Property Inspector is in list view.

Vector Shapes

Vector shapes in linked director movies will not respond to changes to the vector list made using the "tell" command from the main movie. A workaround is to use the tell command to set a global value in the linked movie, and have the global determine when the vertexList should be changed.



documentation, corrections, changes, Lingo, 3D, release notes