Did you know you can label loops in ActionScript 3? Yes, you can! I got inspired by latest tweets referencing source code in image. Lets do some small experiments… Label all of them:
var a:uint, b:uint = 0;
loopA:for(a = 0; a < 10; a++)
loopB:while(b++ < 100)
loopC:for each(var c:uint in [0,1,2,3])
break loopB;
trace(a, b, c); // traces "10 10 0"
Read the rest of this entry »
Here is a quick tip how to check the version of your installed AIR application from an application running in flash player. In order to make your AIR application (system) be able to respond to the requests for installed version correctly you need to define allowBrowserInvocation within your AIR descriptor file (app.xml). If you don’t do this, you won’t be able to query version information on your application:
<allowBrowserInvocation>true</allowBrowserInvocation>
Now your AIR application will respond correctly with its installed version. With this setting on, the installed AIR application can be launched via the browser invocation feature (by the user clicking a link in a page in a web browser). Be sure to consider security implications.
Now, to get version info from any application running in flash player (or AIR) you simply call getApplicationVersion() method on air.swf file located on adobe domain.
Read the rest of this entry »
Even if it stands in documentstion (some crucial things mentioned in one line somewhere), it was really tricky thing to figure out how to make LocalConnection-s work between different application runtimes (flash player / air). It got even more tangled with empty flash player error saying “Error #2044: Unhandled StatusEvent:. level=error, code=”. Basically, there is a generic method/form, with underscore prefix for connection name, that you can successfully use in all cases, but if your application requires higher security you should define your connections more exactly.
Based on your applications origin (AIR / flash player) you may define a few types of communication nature:
- SWF to SWF on a same domain
- SWF to SWF on different domains
- AIR to SWF
- SWF to AIR
- AIR to AIR
Read the rest of this entry »
Did you know that setting stage.showDefaultContextMenu = false, makes disappear not only right-click context-menu (ContextMenu), but also standalone player default window menu (File, View, Options, Help)? I came on this one when tried to create projectors (.exe) files from .swf-s files running in standalone player using “File / Create projector…” feature. All tested/opened .swf files were showing player window menu ok, just one .swf made player window menu disappear, after a while I discovered the showDefaultContextMenu was the cause.
stage.showDefaultContextMenu = false

In computer programming, a bitwise operation operates on one or more bit patterns or binary numerals at the level of their individual bits. Bitwise operations are extremely fast and compact. Anytime we can speak to a computer in its native binary tongue, we save room and gain speed (moock.org). Now, lets see how it works. I have created a small flex application, try playing with numbers (input decimals) to understand what is actually happening with bits using different operators (10 and 3 are good inputs).
Read the rest of this entry »

Pixel Bender for Flash Player lets you play some more advanced games. Based on your needs you can force your kernels to “eat” not only BitmapData, but also ByteArray-s or Vector-s. With this knowledge, you can simply use Pixel Bender kernels for some fast math or processing like 3D engines (3D to 2D projection) etc. Lets have a look at some simple demos, how to push vector and raw bytes directly into shader via ShaderJob:
Read the rest of this entry »