It has been possible for sometime (because of the MacOS widget's webkit support for plugins) to port flash widgets or application to the Macintosh desktop. There are a couple of caveats to be aware of, however, when doing this:
- Ensure your Info.plist file is Setup Correctly
Ensure the following two lines are in the Info.plist file for your Mac Widget:
<key>AllowNetworkAccess</key>
<true/>
<key>AllowInternetPlugins</key>
<true/>
This will allow the widget to support Adobe Flash objects and allow network access. - Ensure your Flash Object is Running Locally not Remotely
Accessing Adobe Flash files remotely from your MacOS widget may cause problems due to security sandboxing so if at all possible, avoid it. - Beware of Floating DIVs
Whenever you try and place a floating DIV over a Flash object, you are sure to run into trouble. Design your widget so any HTML/Javascript generated floating DIV do not obscure the Flash object. - Flash Transparency Does Not Work
In order to get the widget to "float" nicely on your desktop with a drop shadow (as most MacOS widgets have) you need to place it on top of a DIV that has a transparent/semi-transparent PNG. Obviously, the DIV needs to be larger than the size of your Flash object - Use Clearspring or Gigya for Sharing and Tracking
You can use Clearspring's In-widget model or Gigya to enable sharing and tracking from within your Flash object, that way users can share the widget with friends on the web or other platforms. Here is an example we helped develop (Click Grab Me, then Web). - Please Refresh and Redraw as Often as Necessary
When doing Flash-based widget development we have noticed that a bug in the Webkit sometimes causes refresh/redraw problems with the Flash portion of the widget. There is little you can do do solve this other than to intelligently force the widget to redraw each time a user moves the widget, maximizes the widget and brings focus to the widget (by clicking on it). In order to do this type of refreshing, you will need to use swfobject.js. SWFObject is a small Javascript file used for embedding Adobe Flash content on webpages (and in widgets). It is capable of detecting and handling Flash plug-in versions correctly in all major web browsers(on Mac and PC) and can really make embedding Flash movies a lot easier! - Passing in User Preferences
Using swfobject.js and flashvars you can pass user preference from the MacOS widget environment into your Flash object. Redraw the Flash object, reading and then passing in preferences via the flashvar, each time you load or change them.
Hope this pointers help, if you run into problems, let us know!