This document
provides late-breaking or other information that supplements the
Microsoft DirectAnimation documentation.
Overview
DirectAnimation
is released as an integrated component of Internet Explorer 4.0 minimal install.
This provides unprecedented animation and multimedia capabilities
built into a major Internet browser (no special download is
needed). Furthermore, DirectAnimation is integrated with DHTML,
and hence is especially suitable for adding compact and
lightweight animation effects to web pages.
DirectAnimation
is the component of the DirectX family of APIs that provides rich
animation and integrated media support for Web pages, CD-ROM
titles, and multimedia applications. DirectAnimation provides a
unified and comprehensive support for the different media types,
including: 2D vector graphics, 3D graphics, sprites, audio,
video, and a rich time and event model that applies uniformly
across the different media types. DirectAnimation is a COM API
and an underlying engine/runtime whose functionally can be
accessed in different ways by different user groups:
- HTML
authors can integrate animation using the DirectAnimation
controls.
- Microsoft® Visual
Basic® Scripting Edition (VBScript), JScript
users, and Java applet writers can program animation for
web pages with integration with DHTML.
- Finally,
Java, Visual Basic, and C++ programmers can develop
ActiveX Controls or full applications with rich media and
interactivity.
The supported
media types are as follows:
- 2-D
images (.bmp, .gif, .png, and .jpeg files)
- 3-D
models (.x and VRML files)
- Sounds
(.wav and .midi files)
- Movies
(.avi, .mpeg, and .mov files)
- Text
In the case of
movies and sounds, additional media formats can be supported by
suplying DirectShow CODECs for those formats.
One of the key
DirectAnimation classes is the Behavior class. Different types of
media are incorporated into the animation by encapsulating them
as DirectAnimation Behavior objects. Behavior objects can be used
interchangeably, and have a number of methods applied to them,
independent of the media type they are encapsulating. Of course,
you can still access methods that are specific to the different
types of behaviors, based on the type of media.
The minimum
requirements in order to run DirectAnimation applications and
content are as follows:
- Pentium-based
computer
- Windows
95 or NT 4.0
- DirectX, including
Direct3D (for NT users, we recommend SP3)
- Internet
Explorer 4.0 (Netscape Navigator can also be used for
Java applets; see Additional Information)
The
DirectAnimation runtime comes as part of IE4 minimal install. DirectAnimation will
also be part of Windows 98 and future releases of Windows NT.
The
DirectAnimation SDK includes an extensive set of documents and
samples that illustrate the breadth and depth of functionality,
it is available for download, and for browsing.
For a white
paper on DirectAnimation, check the "Getting
Started" document.
Significant
enhancements since the pre-release have been the addition of
support for scripting languages (JScript and VBScript), as well
as the integration of the multimedia controls (in Internet
Explorer 4.0) with the DirectAnimation runtime. In addition to
the multimedia controls, a windowed control is provided which can
be used with IE 3.02 and with Visual Basic. With the addition of
the multimedia controls, content developers can now access
DirectAnimation functionality through different levels, from
PARAM tags at the control level, to scripting, to raw COM.
The
DirectAnimation Java classes are dependent on the version of the
Microsoft VM that ships with the Microsoft SDK for Java and
Internet Explorer 4.0. We used Microsoft Visual J++ 1.1 to author
the Java samples.
In order to
use DirectAnimation Java-based content within Netscape's
Navigator, follow these instructions:
Microsoft
has made a plug-in available to users of Netscape Navigator
2.02 and 3.0 that allows them to make use of the Microsoft
VM. Netscape Communicator is not yet supported because
of changes made to the plug-in interface. Note that this
plug-in does not replace the Netscape Java VM, but it does
provide access to the Microsoft VM through the use of the
<embed> tag. To get an applet up and running under
Netscape, follow these simple steps.
- Get
the plug-in from the SDK for Java version 3.0 pre-release 2 and place it in
your Navigator\Program\Plugins directory.
- Install
the required Microsoft VM, if you haven't already.
- Change
the applet tag in your source html from this:
<applet
code="foo.class" width=100
height=100></applet>
To
this:
<embed
src="foo.class" width=100
height=100></embed>
In general, we
recommend that you upgrade to the DirectX 5 set of video drivers.
Several visual artifacts that appear under older versions of
video drivers disappear with the newer set.
The following
is a list of current known problems. We strongly encourage you to
send us mail if you find a problem (dxmbug@microsoft.com). There are newsgroups
set up to allow DirectAnimation content developers to discuss
issues and ideas, however mailing a bug description is the only
sure way to get a fix for a bug.
General
- For Java
content, all initialization of DirectAnimation
behaviors and events needs to happen in methods (cannot
happen in classes outside of methods); however, you can
have declarations of behaviors outside methods to
make them accessible from other classes and throughout
the methods of a class.
- There are
some small memory leaks, most notably when using 3-D,
sounds, or notifiers. To fix this in Java, implement public
void cleanup() to the class that extends Model. In
this method, call super.cleanup() and set all
behaviors that are suspected of leaking memory to NULL. If
you have other classes which contain DA behaviors,
implement public void cleanup() and only set
suspect behaviors to NULL. Also, add the public void
destroy() to the class that extends DXMApplet. In
this method, call super.destroy() and set the model to
null.
- For Java
content, sometimes the LeftButtonPress events miss.
- The
cursor is considered to be in the middle of the window
when DirectAnimation first comes up.
- TextPath
and TextImage are now obsolete, please use StringPath and
StringImage instead.
- Notifiers
can only be inplemented in Java.
- AnimateControlPosition
takes parameters in meters, even if you are using the
pixel library.
- Only
DirectDraw surfaces created through DirectDrawEx can be
imported.
Graphics
- Shearing
movies and lines does not work properly.
- Color
palette is not correct for 256 colors displays under NT.
- SubstituteTime
does not work right when applied to Splines.
- FollowPathAngleUpright
isn't doing the uprightness.
- Although
class browsers or Visual Basic show the parameters to arc
and roundedrect as radius, they are really the diameter.
- Using
Java, time-varying opacity may cause the whole object to
become solid after some time.
- TextMatte
isn't allowing enough of the image to be drawn through.
- Knot
duplicity for splines is not handled.
- Bounding
box of a sheared behavior is incorrect.
- Overlaying
an image on a solidColorImage, cropping it, and then
adding a rotation transform, results in the
solidColorImage disappearing. The workaround is to crop
the solidColorImage into a matte.
- Underline
and strikethrough don't work on NT.
Audio
- Sound
does not turn off all the time.
- SinSynth
plays at 440Hz no matter what rate is specified..
- Dynamic
phasing isn't enabled.
- Loop
causes the leaf sounds to loop, not the combined sound
behavior (this is the intended behavior).
- SinSynth
mixed with static sound gives a choppy sin sound.
- Audio
time substitutions not accumulating
3-D
- Textures
are not propagating down the leaf geometries for
.X-files-based 3-D objects.
Movies
- To use a
movie as a texture, you have to use the following
workaround (code snippet in JScript):
movieImport
= m.ImportMovie("http://movie.avi");
movieImg = movieImport .Image;
// This is the workaround
movieBBox = movieImg.BoundingBox;
solidImg = m.SolidColorImage(m.White);
solidImg = solidImg.Crop(movieBBox.Min,movieBBox.Max);
movieImg = m.Overlay(movieImg,solidImg);
Controls
- When
using the Sprite multimedia control, source .bmp images
over 2048 pixels long have to be broken into arrays of
images (rows and columns of images, instead of just one
long row or column).
- Under
some video drivers, filtered transparent pixels render as
black.
- For the
Path control, TimeMarker persistence parameter
"-1" works like FALSE in JScript.
We've set
public news groups on the msnews-gw NNTP server, as a
forum for the DirectAnimation user community. We encourage
you to post all questions related to the use of DirectAnimation
on the appropriate news group. In order to access the Microsoft.public newsgroups, you must go through the msnews.microsoft.com server. If you are using Outlook Express as your news reader, you can add this server to your list through the Tools|Accounts menu item.
- microsoft.public.multimedia.directx.danimation.controls is for
users of the DirectAnimation controls.
- microsoft.public.multimedia.directx.danimation.programming
is for programmers
of the DirectAnimation API.
For
reporting bugs against the preview version, send mail to dxmbug@microsoft.com. When you do so,
make sure to be specific about the OS, PC/graphics card,
version of Internet Explorer 4, and specific host language/control that
you're using to access DirectAnimation.
For other
issues or comments that are not appropriate for the forums
above, send mail to dxmbeta@microsoft.com.