I am building my first screensaver, using Flash. It consists of a fullscreen video background, with images fading in and out over the top (the fading is all done in the .swf). Looks great on a PC (when I set the display for the .swf to ‘Fill’) but the same screensaver when installed on a Mac is huge and doesn’t get scaled down to fill the screen. Can anyone help?
i seem to have fixed the problem by using letterbox mode and controlling placement of the elements in the flash movie by listening to the stage resize event and moving them accordingly. thanks for the suggestions!
That’s great news. Be sure to test your screensaver on a wide variety of monitor sizes and aspect ratios, such as 4x3, 16x9, etc.
If you are using OS X for your development, you can simulate monitor sizes in iScreensaver by using the “Size” popup on the Preview window (click the little tic-tac style icon to see the toolbar if it’s not visible). This feature doesn’t exist currently on Windows, however.
yeah, on windows over here and have to send it over to a co-worker to test on mac! blah!
all seems good now… fingers crossed
oh dear - got the following feedback:
On 4:3 monitors (nothing crazy small) we are seeing most of the art
getting cropped on the top and the bottom.
On 2560x1600 monitors, the screensaver seems to lock at 1920 x
1200, and is anchored to the corner.
any ideas? i am finding out if this is on mac or pc as they didn’t specify!
sorry, ignore the first point above, that’s totally my fault! but 1920 x 1200 are the dimensions of the .swf - why would it be locking to the corner?
using letterbox mode. yes, it detects the width and height correctly. i’ll send it over! thanks!
Thanks for the files. We’ve tested them and although we are not seeing the same issue on the 2560x1600 screen (Mac) we do see sizing problems with any 4:3 screen.
My guess is that this is a bug in your code – you said “i seem to have fixed the problem by using letterbox mode and controlling placement of the elements in the flash movie by listening to the stage resize event”
There are a couple things to be aware of here:
Issue 1 - when the SWF starts playing, iScreensaver and the OS will create a new window and resize the window a few times before playback starts. So your SWF may see initially a different size or two before reaching the final size – for example, the resize events may look something like this:
So in this case, it might make sense for your SWF to start up, show black screen for 0.5 second (allow all of the resize events to happen) and then use the final resize as the “correct” one?
Issue 2 - it’s also possible that this is a simple math error in your internal SWF resize code. Getting sizing right with various screen sizes and aspect ratios is difficult. As a test, I opened your SWF in Flash Player (OSX) 10.1 and just played with the window size – I notice that at smaller sizes, some content gets cropped. (Since this is seen this in Flash Player, it’s clearly not an issue with iScreensaver)
Issue 3 - CPU usage (you didn’t ask about this, but felt it was worth commenting on) – we notice that at high screen sizes (such as 1920x1200) the SWF animation is using 100% CPU (Tested under Flash Player 10.1 on Mac OS X 10.6.4, Core 2 Duo 2.2 GHz). The consequences of this are that it will cause the computer to run warm, and the frame rate will be low. (Since this is seen this in Flash Player, it’s clearly not an issue with iScreensaver)
play with window sizing within Flash Player – you will see the issues with content being cut off at smaller sizes. Adjust your resizing logic until this works for you. Once you have this working, then try testing again in iScreensaver.
try to reduce animation size/frame rate/quality, or number of overlapping layers, to reduce CPU usage. Again, test and adjust this in Flash Player before moving the file to iScreensaver for testing.
If you respond to internal stage resize events inside your SWF, make sure that you ignore the first couple events as these may be an intermediate size.
Please let us know if we can help further. It looks like a cool animation!
thanks so much! yeah, i have figured out the problem with the content getting cut off now. i’ll take the CPU comments to the designer - thanks for those!
i guess the only remaining issue is the 2560x1600 screen which i guess is on a pc. i wonder how i can test that without going out and buying a huge monitor for my pc! haha!