SWF Screensaver for Mac

Create your own flash screensavers

SWF Screensaver for Mac Logo

SWF Screensaver for Mac is a Flash screensaver maker. You can easily create your mac screensavers with your own SWF files.

  • Native Mac OS X screensaver (10.4 and 10.5)
  • Use your own SWF (Flash and Flex), HTML or Silverlight files
  • Create a custom Flash preferences panel
  • Dual screen support
  • Different scale modes
  • Flash Player version check
  • Check if internet connection is available
  • Interactive mode (allows mouse and keyboard input)



SWF Screensaver for Mac is under a Creative Commons license is now Open Source. It’s licensed under Mozilla Public License Version 1.1. You can find the source files on github.com

Download SWF Screensaver for Mac
(0.9.3, 27.6.09)

Video: How to create a flash screensaver

Quick Start Guide

1. Right-click the screensaver application. Choose „Open Package Contents“ in the context menu.
How to open the screensaver package

2. You can see several folders. The most important one is „Resources“ because it contains the SWF files. Replace screensaver.swf with your screensaver SWF file and config.swf with your preferences SWF file.
Content of the screensaver package

3. That’s it! Close the package and double-click the screensaver. Enjoy your new screensaver!

FAQ: Features

How does SWF Screensaver work?

SWF Screensaver for Mac is a native Mac OS X screensaver built with XCode. Just copy your own files (SWF, HTML, etc.) into the package! You don’t need any software. You can use your preferred web development tools (Flash, HTML editor, etc.).

Are dual screens supported?

Yes, the screensaver will be displayed on both screens.

How to install the screensaver?

The user just has to double click the screensaver … it’s a Mac :)
(Mac OS X will automatically launch the system preferences and install the screensaver.)

Can I save preferences?

Yes, you can realise preferences by using shared objects which are kind of flash cookies. The swf file in the config panel saves a value that can be read by your screensaver swf file. You can find an example in the download.

What happens if the user doesn’t have flash player installed (or just an old version)?

You can define and design a custom message.

Which flash player versions are supported?

You can target any flash player version because the screensaver uses the flash player currently installed in Safari (on the client system).

FAQ: Development

How can I change the scale mode?

Open the file „screensaver.html“ and search for params.scale. You can choose between four scale modes: showall (default), noscale, noborder, exactfit.

Let’s imagine you are showing a 800×600 flash animation with a rectangle and a circle on a 16:10 display (1680×1050). The four scale modes would look like this:

Scale mode: showall

Scale mode: noscale

Scale mode: noborder

Scale mode: exactfit

How can I change the background color?

Open the file „screensaver.html“ and search for params.bgcolor. Change the value of this parameter with a hex color code.

How can I change the „no flash player“ message?

Open the file „screensaver.html“ and search for div id="myContent". Replace the HTML code within this div with your own code. For testing purposes, you can alter the flash player version in the line swfobject.embedSWF to a higher number (e.g. 11.0.0) that doesn’t exist. So you can check the message.

What are the dimensions of the config panel?

400×400 (0.9.2)
( 500×250 (0.9 and 0.9.1)

Can I use more than one SWF file?

Yes, you can use as many SWF files (or even other file types) as you need. Just copy them in the „Resource“ folder (or create a subfolder in „Resource“).

Using offline files (Sandbox Security)

Please take care of flash player’s security model (Security PDF from Adobe). You can’t load local files and access the web at the same! Of course, you can fix this by changing the sandbox to „local trusted“ in the Flash Player preferences. But if you deliver the screensaver the users will have to do this, too. So I think that isn’t good idea.

One way to avoid this: Include all the assets you need in your SWF file. So you don’t need local access. Or: Use the feature „online check“

Online check

This features allows you to check if an internet connection is available. To activate this, open the info.plist and set CheckIfOnline to true. Then, write the servername in OnlineCheckServername that will be pinged. Important: Don’t start with http://, just write www.myserver.com.

If there’s an online connection, the file from the parameter ScreensaverFile will be loaded. If you are offline, it’s the file in ScreensaverFileOnlineCheckFailed.

To avoid the security sandbox problems (see above), set the publish settings („File > Publish settings > Flash“) correctly in Flash. For the online swf file, it’s „network access“. For the offline one, it’s „local files“.

Is there a fast way to test my screensaver?

Install it and open the terminal. Just call /System/Library/Frameworks/ScreenSaver.framework/Resources/

(one line)

How to differentiate between preview window and and fullscreen mode?

If you want to display something else in the preview window of the system preferences than in the actual screensaver, you can do this in javascript. Check for the property swfscreensaver.previewMode (true/false). An example is included in the screensaver.html file.

Can I use mouse or the keyboard while the screensaver is running?

Yes, there’s an interactive mode. Open info.plist and set InteractiveMode to true. Now, mouse and keyboards inputs don’t close the screensaver. In order to quit the screensaver, you’ve to call the quit function via the ExternalInterface of Flash.

How can I log data from my flash screensaver?

For the Mac OS X screensaver, open the info.plist and set the parameter DebugMode to true. Everytime, the screensaver runs, a log file called Log.txt will be written in the same directory where the info.plist is.

You can use LogBook to log messages from your screensaver flash content to the AIR LogBook application. See here: LogBook for Flash CS3

How to use the Binary Patcher

  • Copy the folder „Binary Patcher” to your hard drive
  • Open the terminal. Type „cd” and drag the folder to the terminal. Press return in order to jump to the Binary Patcher folder
  • Run the script with the command ./BinaryPatcher.sh
  • Write an individual name with exactly 18 characters, e.g. MyScreensaverTest1. Don’t use any special characters, just letters and number without space (If your input is too long/short, you’ll get a hint how long your word is)
  • The script creates the file SWF Screensaver for Mac. Copy this file to your screensaver package (Content/MacOS) and replace the existing file

You can see a demo video here.

Preview doesn’t work when multiple screensavers are installed / Final deployment

Important: For final deployment and for using multiple screensavers at the same time.

Please use the binary patcher. It’s important because the screensaver engine in the system preferences loads all screensavers into the same address room.

If someone else also provides a screensaver based on this template, your screensaver and the other one will have the same class name (=SWFScreensaverView; the standard class name in the template). If you don’t change the class name and have multiple SWF Screensaver for Mac installed, following bug occurs: The preview in the system preferences won’t work correctly. To fix this, use the BinaryPatcher.

Status and open issues:

problems with preview if multiple SWF Screensavers for Flash are installed at the same time (Binary Patcher solves this problem)


Post your feedback here.


Belorussian translation

Thanks to …

Icon (Alexandre Moore)
Paul Bukhovko (Belorussian translation)

Release notes

– New property swfscreensaver.previewMode in JavaScript
– Bugfix: Removed short white screen at the beginning
– Interactive mode (mouse and keyboard don’t close the screensaver)

0.9.2: Config panel is now 400×400 (same as Instantstorm)
0.9.1: New online check feature
0.9: Initial release

Old versions:

0.9.2 Beta
0.9.1 Beta
0.9 Beta