Paratrooper Digital

Category: flash

Primer for targetting multiple platforms for AIR

We found an interesting primer on getting your multiple platform AIR development cycle down. From getting your flex and air sdks installed to tips for version control and even the start of ANT builds.

Seems like a posting in progress, but worth a look.

Alchemy, two versions, different support plan

With Adobe splitting out premium features to emphasize their push for the gaming market, one piece of this is how it relates to Alchemy, a way of flash player compiling and executing c/c++ code. It’s awesome because it allows for some super fast executing code; not at native speeds, but much faster than typical flash player. It also allows one to not have to port over tons of c/c++ code to as3.

With the addition of domain memory alchemy has gotten a rework as mentioned. This makes it even faster.

The only downside of this is that the new version is only supported in FP 11.2 and up, while the old version is only supported in FP versions lower than 11.2

This potentially means that one must either force their audience to upgrade or that the developers need to support/architect a project to work with two different versions of flash player.

There’s lots of details about the pricing model of the premium features to keep in mind which could also sway how you use it, but be aware of the potential of needing multiple codebases/flash detections to serve up different content based on what flash player your audience is using.

AIR with native extensions for desktop apps.

Recently we’ve been looking into the great things that have been coming out of the as3nui team.

Most of the development team is running OS X, but we do have some production boxes for interactive experiences that are Win 7. We recently worked to take something with as3nui created on Lion to get it deployable on the PC side of things.

When we exported a release build as a signed native installer we were hoping to test the installer executable on the test box, we found a DMG containing an app installer for OS X, but no MSI or executable for windows.

From Adobe’s help

You must use ADT on the same operating system as that of the native installer file you want to generate. So, to create an EXE file for Windows, run ADT on Windows. To create a DMG file for Mac OS, run ADT on Mac OS. To create a DEB or RPG file for Linux, run ADT from the AIR 2.6 SDK on Linux.

This means that you’ll need both a PC and a MAC to do the exporting of the platform for each, possibly utilizing ant build scripts to help in automation of this process.

Flash and socket policy servers

Adobe implemented a security update implemented for socket connections similar in concept to crossdomain policy files. This can have adverse effects on a project.

Continue reading

Working with plugins and OSMF locally

Recently we’ve been taking a look at the OSMF.

While looking into plugins and plugin loading, we found a “feature” of loading plugins locally. It wont work if you use relative pathing.

Continue reading

Problem with shared objects not saving.

Recently on a project we experienced and interesting occurence. We were using a shared object to store the state of a user seeing a global introduction. After seeing it once, the shared object saves a value and the user never sees the introduction again; nothing earth shattering.

In this circumstance it seemingly unexpectedly just stops working, consistently but across different pages within the same environment.

Continue reading

Multiple domains and Flash security

There’s a lot of options when working on a flash project across multiple domains. Here’s an overview of the different elements to be concerned about. (continuing to be created)

Continue reading

Working with multiple 3D objects with precise interaction.

The folks over at Blitz and at papervision2 have come up with some interesting ways to actually have real interaction with the MovieClips you are texturing your models with.

The quick is that you always use MovieMaterials(created with a reference to an existing MovieClip someplace on stage). Normally the MovieMaterial object can be offstage or even visible=false to not see the clip; thing is they use visible=true, alpha=0 and reposition the clip actually under the mouse. A bit of trickery has the user actually interacting with the 2D flat MovieMaterial.

One of the nice things about this is that you can also do some testing and creating of functionality of your MovieClips as flat 2D objects and then map them to another object.

In creating an app with multiple panels in a 3D space every panel needs to be attached to the stage and then used to map onto your objects. This is fine when it’s just one object. When there are multiple surfaces that need interactivity this can quickly get out of control.

If you are using pureMVC or carimgorn to build your app you are used to creating a view/ui class that represents the specific element as a whole, it needs to have two elements, the stage texture version and the display3d object.

Ok cool. Just take a step back so that your view consists of two ui elements. Your mediators/viewhelpers can then access both elements and update them appropriately.

Wait what if we have multiple panels with the same textures? Looks like there are two options:

  1. Use the same texture/ the same reference to the MovieClip on stage and use the target of the object to figure out what object you are on(requires dynamic naming of the display objects you are using so they can be keyed in later to access the specific class). You can take advantage of the InteractiveEvent3D event which includes the DisplayObject3D element that is interacted with.
  2. Use a separate instance of each texture on the stage so that it can be targeted separately for each individual item. This also needs to be dynamically named so that they do not overwrite any other textures. Destroy methods then need to make sure they clean up these 2D objects in addition to the 3D counterparts.

We also found that it’s a good idea to add some code that listens for the mouse to be off the given object and send the stage texture off stage and hidden. In the example from Blitz you can still click on an element even though the mouse wasn’t on the object.

Thanks to those guys for the hook ups of the advanced interactive elements.

Tip for searching pv3d help.

If you are interested in adding papervision3d to your project like us you’ll find that there is a little missing in the documentation. Why because they are so active in making improvements its hard to keep valid documentation up to date.

Ok, so the documentation is sometimes a little sketchy, or a little old, or nonexistent. How do you get help? Sign up for the papervision newsletter. I’d select the daily digest that compacts the emails into larger emails that have multiple responses. Make sure you have plenty of inbox space and a filter to folder it because man it gets a lot of traffic. I feel a bit silly asking a question I’m sure has been asked before and generating even more traffic through everyone’s inboxes. I find that this little tip very handy.

Thanks to google you can use the site specific search function to limit your search to just the papervision archive. You can also use this to same search syntax to perform sub searches of any domain. Those google guys are always thinking(of course this has been around for quite some time).

Bookmark this specific google query that will start you out searching the entire archive. Then add additional elements in the search box, space delimited of course, and you’re off and running. No more sifting though pages and pages of countless papervision digests of emails.

Flash 8 continuously crashing on compile.

While working on a project I found that after a code change flash 8 would continuously crash after attempting to compile a swf. Taking a step back and looking deeper at the last code changes helped identify the problem. Continue reading

Most recent posts