With the release candidate for AIR 3 .2 out, Starling is beginning to look more and more attractive. But only time will tell.
The particular example that compares Flash’s timeline abilities with the new tool is a dishonest attempt made by assuming the viewers never used Flash and no one going to raise obvious questions (or assuming people are still using Flash 2.0 or less). Looks like anything related to Apple is leading people into delusion! wow wow
That may well be true. Could also just be plain ignorance of the capabilities of Flash. Either way I take it all with a grain of salt. These days I just try to be tech agnostic. Roll with the flow and all…
As of Flash Player 11.2 and up you can disable the right click menu by registering a listener to the new MouseEvent.RIGHT_CLICK event. This disables the native context menu. Check out the following link for details : http://www.bytearray.org/?p=3755
Out with the old, in with new. Rinse, repeat until new is old and old is new. C’est la vie.
Here’s the description of the BitmapData::draw() method from the online ActionScript Reference :
Draws the source display object onto the bitmap image, using the Flash runtime vector renderer. You can specify matrix, colorTransform, blendMode, and a destination clipRect parameter to control how the rendering performs. Optionally, you can specify whether the bitmap should be smoothed when scaled (this works only if the source object is a BitmapData object).
This method directly corresponds to how objects are drawn with the standard vector renderer for objects in the authoring tool interface. The source display object does not use any of its applied transformations for this call. It is treated as it exists in the library or file, with no matrix transform, no color transform, and no blend mode. To draw a display object (such as a movie clip) by using its own transform properties, you can copy its transform property object to the transform property of the Bitmap object that uses the BitmapData object.
This method is supported over RTMP in Flash Player 184.108.40.206 and later and in Adobe AIR . You can control access to streams on Flash Media Server in a server-side script. For more information, see the Client.audioSampleAccess and Client.videoSampleAccess properties in Server-Side ActionScript Language Reference for Adobe Flash Media Server.
If the source object and (in the case of a Sprite or MovieClip object) all of its child objects do not come from the same domain as the caller, or are not in a content that is accessible to the caller by having called the Security.allowDomain() method, a call to the draw() throws a SecurityError exception.
This restriction does not apply to AIR content in the application security sandbox.
There are also restrictions on using a loaded bitmap image as the source. A call to the draw() method is successful if the loaded image comes from the same domain as the caller. Also, a cross-domain policy file on the image’s server can grant permission to the domain of the SWF content calling the draw() method. In this case, you must set the checkPolicyFile property of a LoaderContext object, and use this object as the context parameter when calling the load() method of the Loader object used to load the image. These restrictions do not apply to AIR content in the application security sandbox.
On Windows, the draw() method cannot capture SWF content embedded in an HTML page in an HTMLLoader object in Adobe AIR . The draw() method cannot capture PDF content in Adobe AIR . Nor can it capture or SWF content embedded in HTML in which the wmode attribute is set to “window” in Adobe AIR .
After reading that bit about restrictions I’m thinking all you need is to setup a cross-domian policy XML on the server from which the SWF originated. This assumes, of course, that you have access to that server.
Yeah, alpha transitions are a deal breaker when it comes to current incarnations of AIR . However, as someone stated before, AIR 3 .2 promises to rectify the situation with GPU acceleration. When last I checked AIR 3 .2 was moving into its last beta, to be followed by a final release. So don’t hang up your Flash/AS3 hat just yet .
When it comes to writing any app for any platform the decision for native vs. using a runtime always has to be approached project by project, it’s not a one is better than the other thing. And it’s definitely not an issue/decision that is new, things such as java vs. c++ have been in this situation for many years.
If it’s a 2d puzzle game, or a note taking app, etc. – use a runtime (like AIR ) so that you can easily deploy to multiple platforms, easily update them all to keep your program always bug free and patched up with minimal expenditure, etc etc.
If it’s something like a 3D first person shooter game, or something else that pushes the resource abilities of a system – then you need to go native because only native lets you truly utilize the speed/rendering possibilities of any given system.The answer of portability vs. performance can only be answered on a case by case basis, just understand both and choose wisely. But regardless, both methods will stay big players in any form of application development because both methods have their situations where they are better.
You sir are on point with that comment. That’s the reason why I posed my earlier questions to Ryan in hopes of getting a better picture of the scope of the app and whether or not it warrants a native build.
Yeah, I spent 5 days trying to optimize my code to run better using some of those techniques with VERY little increase in performance. I’m using the latest AIR build. The performance wasn’t HORRIBLE , but it wasn’t even close to the performance of a native objective-c app, sadly. So, I’m learning Objective-C now. It’s challenging, but I’ll get there.
Would you mind going into detail about the nature of the app you were trying to build? More specifically, did it use a lot of vector graphics, were there a lot of objects being instantiated, how you went about bench-marking the performance of your app when run on an iOS devices etc…