You would not believe the number of times I have heard this question! One of the biggest gripes abut Director is the inability to support multiple screen types, but there are ways around this. The first, and most common approach is to use an Xtra to resize the user's desktop. This works fairly well and usually gets the job done, but there are a few drawbacks...
1 - 640X480 is still 640X480, even on huge monitors. The larger the display the more you can see the pixels.
2 - Many graphics cards do not allow for changing on the fly.
3 - Mac support for this is even more limited.
Having said this here are the most common Xtras to do this and their functions...
DMChangeRes
http://www.dmtools.com
changeres([640,480])
PC
Free
Buddy API
http://www.mods.com.au
baSetDisplay( width , height , depth , "temp" , false)
PC
Free / 80 / 160
DirectOS
http://www.directxtras.com
dosSetDisplay(integer Width, integer Height, integer Depth, string Mode)
PC & Mac
149 each
249 Both
DisplayRes
http://www.updatestage.com/xtras
dresDynamicSetDisplay ( integer lineNumber )
PC
99
There are of course others, but this will give you a basic idea, as they all do about the same thing.
So what can you do if the monitor just refuses to change? Well, some cards just require a reboot before changes will take effect, but in Director 7 you can do a few tricks to get full screen playback anyway. Using the stage.rect and the stage.drawRect we can scale most everything and still get "normal" playback. below is an example...
--Copyright 1999 Chuck Neal
--chuck@mediamacros.com
--If you find this code helpful, send me an e-mail and let me know. :-)
global oldSettings
on goFullScreen me
if float(the DesktopRectList[1][3]) / the deskTopRectList[1][4] <> (640.0/480) then
oldSettings = [(the stage).rect, (the stage).drawRect]
(the stage).rect = the deskTopRectList[1]
(the stage).drawRect = the deskTopRectList[1]
end if
end
on returnScreen me
if listP(oldSettings) then
(the stage).rect = oldSettings[1]
(the stage).drawRect = oldSettings[2]
end if
end
on getBehaviorDescription me
describe = "This script allows you to enlarge the stage to full screen and stretches the cast members with it. Note that Text and Field members do not scale and this could slow performance."
return describe
end
There are a couple of drawbacks to this method.
1 - Text and field members do not currently scale
2 - Bitmaps that are scaled will slow performance on slower machines
3 - On dual monitor systems that see both monitors as a single desktop (Windows NT only) this script is disabled to prevent stretching of image to twice the original width.
Play with it and see if it works for you. Obviously you get better performance scaling an 800 X 600 project down to 640 X 480 than going the other way.
Contact
MMI
36 South Court Sq
Suite 300
Newnan, GA 30263
USA