Login | Register
Review: mProjector 2

Review: mProjector 2

mProjector does not try to be the do-it-all application, but rather focuses on having the best technology and being developer friendly. Of the tools tested, mProjector has the smoothest developer experience.

mProjector were originally published by Binary Noise. From version 2, it is now distributed by ScreenTime, makers of the popular ScreenTime screensaver tool (Mac/PC) and SWF Desktop, a desktop skinning tool for Flash.

mProjector is the only tool to offer synchronous commands. This means that when you issue a command, you get the response instantly. There is little or no need for callbacks or looping frames. This makes the development process the smoothest on the market, since you solve with just one command what others must do with listeners and handlers that trigger upon data.

Ease of use
mProjector has both online help, sample files for download and help files that plug straight into Flash's reference panel.

image

All commands have good examples of usage, so you can often just copy and paste. The commands are all rather ActionScript-like, so downloading a file can be done by issuing a command like this:

mApplication.downloadFile( "some.txt", http://www.test.com/my.txt, null, this.onProgress );



This will download the file my.txt from test.com and name it some.txt. While downloading, the command will call a routine called onProgress with parameters that can be used to show the download progress. To use mProjector commands in other scopes than the main SWF (i.e. inside classes), you must add _global in front of the command.

_global.mApplication.captureScreen(0, 0, 1024, 768, _root.imageHolder);



The command above will take a 1024x768 pixel snapshot of the users screen and load it into the MovieClip imageHolder on the main timeline.

To create a projector using the functionality, you export the SWF from Flash and open it in the mProjector program. Here you can add features such as Alpha Blending (Transparency against the desktop for Win2K and XP), the type of projector framing (windowless, square window with no borders or ordinary window) and the Icon for the exported file.

image

You can also choose what plugins to add/remove to trim the size of your final file as well as files to pack with the executable. The total size of a projector varies from 1Mb and upwards, depending on what features and content is added. The Mac and PC version are about the same size. The packed files (SWF, XML, etc) can be loaded into Flash using standard LoadMovie and Load commands. One unique feature for mProjector is that these files are not unpacked to the user's harddisk upon install. They remain part of the EXE and are played back through system memory. All files packed with the projector are thus fairly well encrypted and hard to get to.

When you work with projector files, the ordinary trace-command won't work since you are not inside the Flash IDE. Due to that, mProjector comes with a special "Trace Viewer" that will allow debugging via special trace-commands. You just open the Trace Viewer and then run your app to see the output.

Support
According to ScreenTime.com, "All technical support calls are handled within one business day and free of charge. When you call during our business hours, you'll talk to a real person". Our experience is that this is true. The FTP plugin was developed after requests from mProjector users, so they also listen to users needs. ScreenTime also has a support forum. Updates to the latest version are free and frequent.

Platform Support (PC,MAC)
The first version of mProjector supported all the Windows OS's. ScreenTime recently announced the availability of a Mac version supporting several platform specific features such as setting and bouncing icons in the OSX dock, reveal the program location in Finder and running AppleScripts. We have yet to see a mProjector executable crash and that's no small feature either. Stability seems to be the rule and any problems reported are quickly fixed in updates. Recently, the Mac version was tested and found to be a simple interface with great features. Not only will it produce projector files for the Mac, but the application itself will run on a Mac. You can even call applescripts from your projector files with the mSystem.runAppleScript command for more power on the Mac including the ability to convert text to speech.

Extensibility (COM, Plugins)
mProjector supports calling COM objects and special plugins. They also provide a plugin SDK that will help you develop your own extensions. When you are using COM objects, the object's methods and properties can be accessed through Actionscript as if they were native Actionscript functions. The COM objects may be bought from others or you may write them yourself. The first plugin available is a FTP-extension that will allow you to make a full FTP program with both uploads and downloads.

image

Other products also offer the ability to call DLLs directly. mProjector Lead Developer Neb Kragic says "Calling DLLs directly would have been pretty easy to implement but it is not very safe. DLLs often contain pointers to data structures and this cannot be implemented in ActionScript". ScreenTime have made a Windows Plugin SDK for mProjector that contains all the Visual C++ source code for the mFTP plugin as a starting point for making your own plugins.

File Opening Example
This example is performed for all the Projector Tools in this review. We make an FLA that opens a text file and then displays its contents in a text field. A fairly simple task for most of the tools, but it will show you some of the differences between tools. To try this project yourself, visit the ScreenTime website to download the trial version of mProjector. When you have installed the software, download this FLA and open it in Flash MX 2004. The FLA has just one script located in frame one:

import mx.controls.TextArea;
import mx.controls.Button;
// Setup text field for displaying the text
var tArea:TextArea = _root.createClassObject(mx.controls.TextArea, "my_tf", 999,{html:true,border:true,_y:40});
tArea.setSize(300, 160);
// Make a Browse-button
var tButt:Button = _root.createClassObject(mx.controls.Button, "my_tb", 998,{label:"Browse",_x:10,_y:10});
tButt.clickHandler = function(){
browseForFile();
}
// Functions used
function load(file:String):Void
{
var cont:String = _global.mFile.readString(file);
tArea.text = "Contents:"+cont;
}

function browseForFile():Void
{
var newFile = _global.mSystem.chooseFile("Select Text file","",_global.mSystem.getDesktopFolder(),"Text Files (*.txt)|*.txt","txt",true,false);
if (newFile)
{
_global.mApplication.trace("File Chosen: "+newFile);
load(newFile);
}
}



The comments should make this fairly self-explanatory, but here's a brief description. First, we create a text field and a button with the label "Browse". When clicked, the button will call the browseForFile-method. When the dialogue closes, it will return a string containing the path of the file chosen. This path is then passed to the load-method which reads and displays the contents of the text file.

imageFull Application Example - Gush
Gush is a fully featured IM client / NewsReader made in Flash and delivered using mProjector. The IM supports MSN, AOL, Yahoo and ICQ, so you can keep your current account when using Gush. The news reader supports RSS, RDF, and Atom. All this is delivered in a great looking program with loads of features.
Read more / Dowload Gush
Click here to visit the mProjector home page

 

Rate this article
 

 

Comments

No comments for this page.

Submit a comment

Only registered members can comment. Click the link at the top of this page to register.