subobjective21 interactive
Published May 10th, 2010 by Nate Frank in Category: nifty tech

I’m taking a look at flash catalyst. There’s a few initial things I’ve found.

  • Your PSDs pretty much needs to be pristine.

    Clear out all old items from previous rounds of design, the more junk in that file the more crazy the import is going to be.

  • Object Oriented Design

    If catalyst is a tool that helps create object oriented applications, its going to need object oriented design to start from. While designers may not need to know polymorphism; encapsulation will be a bigger deal.

    What does this mean?

    Ever find yourself using the same textfield with spaces between words to create a menu rather than creating extra copies of the textfield and changing the copy within them? No more, treat them as separate objects.

    Ever find yourself using the same layer for multiple graphic elements; duplicating pixel content instead of creating a duplicated layer? Break them apart and treat them as separate objects.

  • 40 mb limit

    Seems like there’s a limit to the size your psd can be that gets imported; 40mb. I can’t remember the last time I got a PSD that was less than 100mb let alone 40. You’ll need to do all sorts of things to reduce the file size just to get catalyst to open the file. One trick might be if you are using an all in one layer comp PSD you’ll need to export layer comps to psds. This isn’t as bad as it sounds if you use the Photoshop -> File -> Scripts -> Layer Comps to Files script.

  • Shapes

    Keep your items that are flat objects or borders as shapes and not as pixel data, or you’ll import it all as pixel data and bloat the hell out of your app.

  • Naming is super important.

    To make sense of the importer panel in CS3/CS4 it totally helped to have all the layers named correctly and in folders that had the right names and not just “lorem copy 43″

  • Fonts for sure need to be lined up.

    Its even more important that the designers and the people doing the importing and development all have the same fonts.

  • In short. Its going to take a straight up miracle to get designers to create PSDs that can be used to take the most advantage of flash catalyst. I’ve worked as a designer. I know the shortcuts that speed up creation. Unless you can get your designer on board chances are the time you’ll save in prepping assets for flash/flex will probably be spent cleaning up a PSD instead.

    Even if its a purely academic task, I’m going to reformat my PSDs to be super cleaned up, and then see how the import goes again. Hopefully I’ll get to test out some of the round tripping for design revisions. I’ll keep you posted.

Published March 12th, 2010 by Nate Frank in Category: nifty tech

While setting up the debug player for output on a different computer I found a posting by jpauclair. It talks about a ton of things that you can set in the mm.cfg file, not just the normal two that everyone always uses.

Perhaps the coolest of them all is:
TraceOutputBuffered = 1|0

Anyways, it was noteworthy to share and also keep for reference.

Published March 10th, 2010 by Nate Frank in Category: data visualization

While recently browsing I found the site of Chris Harrison.

Hes got some interesting pieces in his data visualization collection.


If you are a data vis nut, check him out.

Published March 10th, 2010 by Nate Frank in Category: user experience

Perception is definitely a tricky thing; especially when it comes to the perception of speed and how well an experience performs.

There could be two sequences that happen in the exact same amount of time, but how they are executed can change a users perception of how well they perform. Taking a look at loading this is no different. In internet filled with spinning beach balls and hourglasses of falling sand grains how one executes a loading sequence can be quite effective in making an experience feel that much more responsive.

I found this white paper by chris harrisonfrom 2007. A few years old it still holds true and has an interesting study of responses to how visuals are updated on a screen and users perception of those updates.

Worth taking a look.

Published March 04th, 2010 by Nate Frank in Category: compile help

Recently on a project we experienced and interesting occurance. 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.

Published August 14th, 2009 by Nate Frank in Category: compile help

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)

Published August 21st, 2008 by Nate Frank in Category: nifty tech

With the flex 360 videos that are being posted on Adobe Media player (AMP) I queued quite a bunch of file and let it run over night. I woke up to find my main hard-drive was full. Searching for methods of deleting these files proved unsuccessful.

As I was working on some air apps I remember running across the folder where the user specific data is saved and went hunting..

C:UsersAppDataRoamingAdobeAdobe Media PlayerLocal Storecache
(this is on Vista 64bit)
It would be in a similar path on the mac.
I just went in and nuked the folders at this location and freed up a ton of space.

Now I’ll go through and watch them a few at a time.

Looks like AMP is missing a vital trashcan icon in a few key places.

Published July 03rd, 2008 by Nate Frank in Category: 3d

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 its just one object. When there are multiple surfaces that need interactivity this can quickly get out of control.

If you are using puremvc or caringorn 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.

I also found that its 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. The example from blitz I found I could still click on an element even though my mouse wasn’t on the object.

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

Published July 03rd, 2008 by Nate Frank in Category: 3d

If you are interested in adding papervision3d to your project like me you’ll find that there is a little missing in the documentation. Why because they are sooo active in making improvements its hard to keep valid documentation up to date. (At a recent conference I heard there is a book slated to be worked on when the new version of pv3d comes out for flash player 10)

Ok, so the documentation is sometimes a little sketchy, or a little old, or nonexistant. 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).

I have a bookmark to this specific google query
that starts me out searching the entire archive. Then I just add on additional elements in the search box, space delimited of course, and I’m off and running. No more sifting though pages and pages of countless papervision digests of emails.

Published May 11th, 2008 by Nate Frank in Category: nifty tech

This is some pretty interesting datavis over time. From where else? TED of course.