Contents
Articles
Behaviors
Books
Director News
Director Web Sites
FAQ
Games
Mailing Lists
News Groups
Project Examples
Reviews
Software
Tools
Useful Web Sites
Utilities
Xtras

Don't miss these
Protected Code
cXtraTransitions
Generic Countdown Timer
All purpose status bar
Space C
Writing HTML in Text member
Generic behavior to change System Cursors
Play and Review Flash
UltimateFileIO
New bitmap from existing member
 

 

 

Article Making the Projector Fill the Screen

Added on 11/1/1999

 

Compatibilities:
D7 D8 Mac PC

This item has not yet been rated

Author: MediaMacros (website)

How can I make my projector fill the screen?

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

Send e-mail