Archive for the 'AIR' Category

San Flashcisco: March Meeting feat. eBay Desktop

San Flashcisco has just announced the agenda for the March 20th San Flashcisco meet up.

This month we are honored to have eBay Technical Evangelist, Alan Lewis, as our special guest. Alan will be presenting a case study on the high profile Adobe AIR project, eBay Desktop. Then afterwards he’ll be available to answer all of your burning questions in an AIR Q&A panel.

We shall also be exploring new workflows within the Flash Authoring IDE for creating and publishing AIR projects and taking a brief look over the new AIR APIs/features.

Cost: Free to attend & free PIZZA & BEER

RSVP Now!.

Adobe AIR Released

Adobe has just released version one of the desktop application runtime, AIR. Adobe AIR is a cross-operating system runtime that lets developers combine HTML, Ajax, Flash, and Flex technologies to deploy rich Internet applications (RIAs) on the desktop.

This is truly a monumental moment in the evolution of Flash. We’ve seen it grow from a modest animation player, to the enabler for rich website experiences, to the champion of web video and now to the darling of the Desktop.

Flash has always been an huge creative medium and now it’s gone and “super-sized” its abilities. There has never been a better time to be involved with Flash. Welcome to Desktop 2.0!

Adobe AIR Website
http://www.adobe.com/products/air/

AIR FAQ
http://www.adobe.com/products/air/faq/

Adobe AIR is The Matrix?

I don’t know how old this is or where it came from .. but it’s made my day :)  

http://www.kirbycove.com/matrix_believe_achieve.html

[UPDATE] Video pulled .. see first comment.

New AIR Logo: The Adobe Hole?

As I’m sure you’ve already seen and read many blogs now (link, link, etc), Adobe AIR has a new logo!

One small thing I wanted to bring up about this new logo is it’s hole.  To me, it seems to coincidentally mirror the hole found in the new Photoshop logo.  And what’s even more interesting is that they look kinda cool linked together as I’ve mocked up on the picture below.

adobe_hole.png

Is this a sign on things to come for Adobe branding or just an random coincidence?

Briefly: RIA Camp at Adobe SF

I’m planning on attending RIA Camp next week at Adobe. So, if anyone wants to talk San Francisco Flash Platform User Group with me, then you should come on down. These small camps are always fun :)

Recruiting: San Francisco Flash Platform User Group

Disclaimer: If there is already a San Francisco Flash Platform user group in existence, please let me know and ignore this post.

From my observations, I’ve heard of many Flash user groups from all around the world. The first few that spring to mind are based in Boston, LA, London and Belgium. They all seem to attract a good following and these people seem to want to share what they know and love with other like minded individuals.

So, what’s the motivation behind this post. Well, for the past few years, I’ve been a bit of a Flash lone wolf, as I’ve always ended up working as the only ActionScripter in my workplaces. Even now at Sony, I’m working in an office full of C engineers and one IA person. I have no one to talk ActionScript with!

At lunch times, I’ll sometimes take the short walk down Townsend St to get a burger from the Holy Grill, passing the SF Adobe building on the way. And I feel that I can’t be alone in my ActionScript world with the Flash mother-ship right next to me. haha.

For these reasons, I feel compelled to start a San Francisco based Flash Platform user group (see Disclaimer). To start recruiting people, I’ve setup a group hosted on Facebook (yes, I know it’s not the best solution and it’s only temporary) so, if your based in the Bay Area, with a love for anything Flash / Flex / AIR / ActionScript / MXML related, I would encourage you to join in!

When and if the group gets a big enough following, I’ll make another posting, both on here and on Facebook, outlining plans for a first meet to discuss how the group shall be organized.

I feel that any kind of group should be as democratic as possible, so please, if you have any suggestions or feedback on what I can do to make this group a success, please don’t hesitate in leaving me a comment or email.

Let’s make it happen! :)

Speed up Flash with Stage Quality

Ever since the release of Flash 8, I’ve rarely published a Flash project with a HIGH stage quality. If you know why, then you can skim this post and leave me a high-five in the comments, if not then read on …

So what’s stage quality I hear some of you asking? Well, you may of seen it feature within the default context menu of the Flash Player. And this small setting defines how certain elements are anti-aliased/smoothed within your Flash application.

Here are the four available quality settings:

  • StageQuality.LOW - Graphics are not anti-aliased, and bitmaps are not smoothed.
  • StageQuality.MEDIUM - Graphics are anti-aliased using a 2 x 2 pixel grid, but bitmaps are not smoothed.
  • StageQuality.HIGH - Graphics are anti-aliased using a 4 x 4 pixel grid, and bitmaps are smoothed if the movie is static.
  • StageQuality.BEST - Graphics are anti-aliased using a 4 x 4 pixel grid and bitmaps are always smoothed.

So, HIGH and BEST sounds really awesome right? Think again! Let’s take a brief look at (vector) graphics:

Vector graphics (also called geometric modeling or object-oriented graphics) is the use of geometrical primitives such as points, lines, curves, and polygons, which are all based upon mathematical equations to represent images in computer graphics. It is used in contrast to the term raster graphics (also know as a Bitmap), which is the representation of images as a collection of pixels, and used as the sole graphic type for actual photographic images.

When Flash renders a vector graphic, the bitmap result of the vector data is calculated on the fly. This can be awfully taxing on the users machine depending on how complex the vector graphic drawing is. A large part of this calculation goes on smoothening-out all of the lines and edges so that you end up with something that doesn’t look jaggy, and this is where the quality setting comes into play. You can think of the quality setting as accuracy level of anti-aliasing. So, the higher the accuracy, the more work has to be done when rendering.

So what changed in Flash 8?. Well, Bitmaps staged a military coup and took the crown away from vector graphics of course (err). First off, we got the cacheAsBitmap flag, this took a lot of stress of rendering complex vectors away such as UI components. Then we got the awesome BitmapData class (its like a freaking Swiss army knife!), and finally we got Advanced embedded text rendering. The new text rendering is the most important reason for not using HIGH anymore as it does not suffer from jaggies in lower modes.

Back in 2005, I created my first Flash 8 website while working at Sparkart for Mike Shinoda’s side project, Fort Minor (http://fortminor.com/site.php). I really wanted to dip my toes into as many Flash 8 features as possible. So, in the site you’ll see blend modes, blurs, vp6, BitmapData (used for image flattening) and advanced text. But the best thing about all of this is that the site stage quality is set to LOW! Now, this site wont win any awards for usability and the code is rushed (~2.5 week project) but you’ll see how I was able to push the speed of the animation by setting the quality to LOW without really loosing anything visually. An important thing to note from this is that the site has no vector graphics, its all bitmap based.

This brings me briefly onto Papervision 3D developers who actually inspired me to write this post. Today, I came across the papervision based game “Downtown Maze Master” from Nissan. I noticed that the game was running in HIGH mode through the games context menu as my MacBooks core was running at 77% and my laptops fan soon fired up. Thanks again to the context menu, I took the setting down to LOW and immediately watched my core usage go down to 54% without any anything visually bad happening in the game. I’d usually expect papervision3d developers to be close on the bleeding edge of Flash, so I wonder why the quality setting was forgotten. And this site is only once of many papervision3d sites guilty of this sin. End of rant, spread the word :).

Bitmaps rock your sock in Flash, but what about if you need to resize bitmap elements? Well in my world today, I work mainly on creating application UIs vs website experiences, and my best friend is 9 slice bitmap scaling. To read more about 9 slice resizing, check here. But what about if you still need to utilize vector graphics and run with a LOW setting? Well, you may still need to use the HIGH setting if your vector is quite dynamic and/or shape tweened. But if your only planing to pan your vector around the stage, then you might be able to use LOW successfully if you “flatten” the vector to a Bitmap in HIGH mode, then switch back to LOW.

// ActionScript 3

stage.quality = StageQuality.HIGH;
var shape:Shape = new Shape();
shape.graphics.lineStyle(2,0xcc00cc);
shape.graphics.drawCircle(100,100,100);
var bitmapCanvas:BitmapData = new BitmapData(200,200,true,0xffffff);
bitmapCanvas.draw(shape)
stage.quality = StageQuality.LOW;
var circleImg:Bitmap = new Bitmap(bitmapCanvas);
addChild(circleImg)

The result will be a wonderfully anti-aliased circle shown in LOW mode. This method also works well for cutting down the number of elements on stage in general, just think of it as an uneditable cacheAsBitmap.

The lesson I want you to take from this post is to always play with your default quality mode before pushing your site live. You just might get a pleasant surprise :).

Adobe AIR is an Email Killer

A few weeks ago I came across a blog post by Ryan Stewart titled “Thinking About the Purpose of AIR” and it got me thinking. In his post he talks about AIR being the removal of browser limitations, but I think its much more than that. My theory is that that AIR has the potential to replace the need for classic email. Blasphemy, you say?

My argument for this stems from the rise of social networks. I’ve been using Facebook for a good few months now, and I’m observing that email is no longer the primary medium for progressive communications. No longer do I email someone directly anymore, I’ll either post on their wall or send them a private message.

Of course you could argue that this is in-fact what email is, and that bulletin board systems have been doing the exact same thing since the dawn of time. But to me, sites like Facebook make the whole experience far more friendlier, spam free (let’s forget about MySpace for now) and far more intuitive. Agreed?

There is of course one big caveat in all of this. And that is that, social networks still need to send you a classic email in-order to inform you that there is a new event waiting for you to check out. Doh!

But wait, what if Facebook were an AIR application? As soon as someone pocked, messaged, threw a sheep at you, you’d know about it the moment it happened through some kind of “Toast”/”Growl” animation on your desktop. That poor old event email is now redundant and may never be read. “Aha!” I hear you cry or “Dur!” if your mind instantly springs to instant messages.

But, it doesn’t have to stop with social networking communication. What about mailing lists? They could now be turned into web services and allow developers create experiences around their APIs. And to unsubscribe? Simply uninstall the program! (That’s really important!) Also, how about apps such as Netflix Queue Management or Amazon package tracking? Just take a look threw you inbox and you can immediately see that large portion of those emails would work better if they we’re managed data within a purposed desktop application.

I think in most cases, people’s inboxes are a mass of unsorted data. Sure you can setup smart folders and rules, but at the end of day, it’s all useless data that most of the time is read once and throw away. Also look at your spam box, my spam box in my GMail account is currently holding 2131 emails! Email is definitely far from elegant is it? In my eyes it’s a generic dinosaur destined to meet its asteroid. More blasphemy! (side note: Ive been watching 300 on Blu-Ray too much.)

So to conclude. The email killer is a set of purposed desktop (AIR based) applications, that are usually connection to a user account, that store persistent data “pushed” out from a service.