Category Archives: Flex

Update: I’ve now written up my thoughts on Day Two and Day Three.

Now in its fourth year, Flash on the Beach has quickly grown in to one of the most popular Web conferences in Europe. This week hundreds of developers, designers, gamers and animators (you name it) have arrived in Brighton to see and hear the latest news and innovations in the Flash world. I’m here and until Wednesday, trying to get to the best of the packed schedule.

Flash on the Beach 2009

Keynote

Richard Galvan and Mark Anders

The conference opened with a keynote from Adobe’s Richard Galvan (product manager for Flash Professional) and Marc Anders (Senior Principal Scientist).

They started with the usual kind of Flash Player boasting, statistics, looking at the penetration and speedy uptake of the past versions for the last view years and looked over some of the feature successes of 2009 before outlining what we can expect in the near future.

Of those success stories they particularly highlighted the prevalence of 3D, the perspective API in particular and the new drawing API. With both, celebrating the growing power of the Flash platform in their ability to handle these developments as they’ve promised years previously.

They talked about the forthcoming release of Adobe AIR 2.0, demonstrating some of the popular applications that have surfaced this year in TweetDeck and Fanbase.

Elsewhere on the Flash player, the new text rendering engine looks impressive. The forthcoming update easily renders ‘print quality’ text in any reading direction – not only bi-directional right to left, but supporting languages such as Thai, Hebrew, Arabic and Asian languages horizontally and vertically.

We had a sneak preview of what else is to come in the CS4 update. Inclusive of the above text advances; authors will have a far greater amount of control over editable properties, more toward the likes you would find in Photoshop (kerning, ligatures, etc) as well as the TLF (Text Layout Framework) improvements which can link multiple text fields like columns, as to what we’re more familiar with in Adobe Illustrator.

There’s a keen initiative to make life easier for newcomers to Flash – and designers ;) .

For example, there are now a number of code snippets bundled with the Flash IDE which, whilst not being anything brand new at all for most workflows, has been lacking in Flash for some time. These will beparticularly beneficial for those experiencing migrations problems from Actionscript 2.0.

Alongside those, the code IDE also has both auto-completion and code introspection for custom classes.

As has always been Adobe’s intention, there’s a continuation of tightening the integration of programs across the Creative Suite.

Flash Professional and Flash Builder (the renamed Flex Builder) have a partnered workflow between coding and design environments. Documents can be created within the Flash IDE and a document class be generated and automatically be launched within Flash Builder. Flash Builder in turn has compile and debug shortcuts via the toolbar to switch back and forth with Flash thereafter.

The keynote concluded with Mark Doherty joining Richard and Mark on stage to demonstrate some of their developments with mobile devices. Showing Flash running (almost) natively on a few mobile devices and even promised their first television platform support – though poor cabling let down the demonstration.

Advanced Desktop Development with Adobe AIR

Mike Chambers

The first talk proper I attended was with Mike Chambers exploring some advanced techniques with Adobe AIR. Since it’s release 18-odd months ago, there’s been plenty of entry-level talks and tutorials at conferences I’ve attended, so I was looking forward to a more advanced demonstration.

Mike went through some of his contributions to the AS3corelib, a must-have library of tools that came around last year.

The first was the FileMonitor, straightforward enough, is a handler class for monitoring changes to a file on the system marked for observation. The class dispatches events on modification and movement (or if it is deleted) by polling the file regularly and, basically, looking for changes to the last modified date. Mike noted that this class and the VolumeMonitor, which he demonstrated next, essentially facilitate what AIR natively ‘cannot’ really do. They’re not particularly hacks, but workarounds until the runtime supports these functions natively.

Mike also talked about the AIR 2.0 release, that as well as having the performance improvements you’d expect, checks off a few of the most popular feature requests, which was one of Adobe’s highest priorities.

He demonstrated the StorageVolume API, which monitors for USB mounted hard drives. He recorded a video with a flip camera and handled the file transfer within an AIR application which detected it’s mounting and read the file contents.

This really made AIR look like it could eventually be a very powerful desktop runtime (and already it’s pretty damn good as it is). But with it’s seamless connection with the hardware devices and by seeing it confidently carry out the kind of tasks you’d expect more traditional proprietary software to perform was really something.

Likewise, Mike showed some examples of storing persistent data for applications by creating custom file types. He also utilised the application cache, by way of the ResouceCache class, to optimise processing. This of course also allows you to access these kinds of assets whilst offline, which after all is half the deal with AIR. It too really made AIR look like a far more serious, or at least a more mature platform than it’s young age may otherwise suggest.

Finally he talked about forthcoming changes to running native processes and applications – and this is a huge deal.

I’m sure this is would have been the most requested feature by far – that AIR should be able to launch files in their native apps and run other applications or processes securely from within it’s own runtime.

Mike was the developer of the CommandProxy, a proof-of-concept bridge between AIR and the OS by way of a secondary application (running in the background), but this development now makes that obsolete. This would be able to talk to other applications the correct way, whether that application is something like Photoshop or a command line process.

Apparently though, if you do use this functionality, you can no longer distribute your applications as an .AIR file. Although your app will still be completely cross-platform (this is important to Adobe, he says) you’ll have to export as the platform-specific executable – so a DMG or EXE file, for example – though handy as it is, the compiler will produce these for you :) .

Mike has now uploaded his notes to his blog here.

HelloEnjoy

Carlos Ulloa

Next up was Carlos Ulloa who discussed a selection of his latest work for his studio HelloEnjoy. Founder of Papervision3D, Carlos (as ever) didn’t fail to impress.

The first project was ‘Flowers’, a very intricate visualiser and editor for forms of artistic models of abstract 3D flowers. Whilst offering a very simple interface to manipulate the characteristics of the flower – shape, size, colours, in real-time – it hid some extremely complex mathematics and transformations behind-the-scenes.

Carlos took us through how the project was conceptualised and ultimately built, referring to some of the libraries he used along the way – Flint particles being one of them, as well as the excellent GouraudMaterials for shading.

Secondly he demonstrated EnergyLab – a relatively straightforward game mechanic, but executed to the highest levels of workmanship and attention to detail that I’ve probably ever seen in such an application.

Having visited the site before and being impressed enough simply by the experience it offered (it deservedly won a FWA, too), I hadn’t truely realised how much work had gone into the development of the project – particularly the 3D work more in the combination of Papervision and Maya, than the video production which is arguably more striking.

Carlos went through an extremely complex and lengthy process to achieve the desired visual results requested by the client, who pretty much came to them with a video full of CGI and asked “Can you do that?”. It’s exemplary of the powerful effects that can be created in Flash as boasted in the keynote.

Working in parallel with Papervision and Maya, for weeks scrutinising every detail of the project it would seem, it’s as much also a remarkable achievement of workflow and process. I don’t think that playing the game really represents this.

Finally we saw walkthroughs of HelloRacer, an iPhone application developed with Unity 3D in just a week (the online version of which can be seen on Carlos’ blog), and the popular HelloEnjoy website – newly improved with extra models and sound. By this point most people were already pretty blown away, Carlos made this look relatively simple - he sets a high bar.

Adobe Town Hall

Adobe Flash Platform team

This session was a face-to-face Q&A between the leaders of the Flash platform and the community at large, an open-mic style meeting allowing anybody to fire any questions they had.

The team was Richard Galvan, Mark Anders, Paul Burnett, Andrew Shorten, Mark Doherty and Lee Brimelow.

Most questions related generally to workflow, feature requests or concerns over software bugs, with the odd teething problem with CS4 thrown in. However a few points are worth nothing outrigh.

For one, the panel were asked about threading and whether there are any plans to support some kind of threading in the Flash Player (ever, at all). I thought this would produce an outright “no”, but it seems it is something that they’re considering. No doubt due to the high amount of requests. They said, whilst threading is very hard to achieve and in no-way present in any form natively for the player right now, they’ve looked at other methods of running concurrent tasks seen elsewhere with the likes of HTML5 or Grand Central Dispatch, to facilitate something similar. So although there is a definite interest, what we might eventually see may not necessarily be ‘threading’, per se.

Another (perhaps inevitable) question asked for any update on the status of Flash for the iPhone – both for support in the Safari browser as well as potential to run applications natively on the platform. Disappointingly, there is none. This was an outright blank – although of course, it’s still a target. Adobe will demonstrate Flash Player 10 to the best of its ability at Adobe MAX 2009, but other that that, there’s no new plans. It was actually at FOTB last year that the first announcements were made.

Thirdly Flash Media Server got a mention, FMS is something I have a bit of a soft spot for. The question was asked as to whether it will ever support AS3 – currently it’s a cheap version of AS1, which is basically Javascript. Though unfortunately here too, they had no news to offer – more to do with the fact that none of these guys work on the platform personally, so they couldn’t offer anything. But it was said that the platform is still being developed though, and it’s probably just ‘a matter of time’.

Finally there was a quick conversation about the ‘headless’ Flash player, a distribution for search engines to allow indexing of Flash-based content (SWF files). I wrote about this when it was announced, but it sounds as if it might now be released again but for developers to play with – for the same reasons and SEO purposes so we can see how it works inside-out, but also as a tool that could be used for the likes of automated testing, or anything else that we might be able to come up with.

Another note taken from the session actually, it seems that Flash on the Beach is unfortunately ‘too close to MAX’, as I heard on multiple occasions. Adobe are obviously holding back from secrets for MAX, fair enough, but it was disappointing to hear this said a few times to the crowd of eager community members who’ve paid their hundreds of pounds for their tickets.

Cybernetic Art Revisited

Dr. Woohoo!

Flash on the Beach has been noted for a being a conference that despite it’s name isn’t solely concentrated on Flash. Although you’d expect the whole platform to be covered (Flex, AIR, etc), which it is, FOTB also hold sessions on technologies only loosely associated with Flash, other Adobe products and pure Web technologies too. They’ve held talks on the likes of Processing for example, and there are talks about technology in general. This was the first of those kind for me.

Dr. Woohoo! talked about his time working with cybernetics and digital art and his paradigm of Art + Science = Serious Fun. He talked about about the people and places that have influenced his work and shaped his career to date.

He spoke about his time at the Santa Fe complex, showed some great recordings of the Art && Code symposium and other exhibitions he’s attended, spoke about the current state of affairs with reference to projects like Computer Vision and more recently Project Natal.

He then demonstrated his latest work with a ZCam and openFrameworks to drive mini-bots around his podium on stage.

There was a lot of name dropping and references thrown in to books and other institutions, recommended reading and quotes from luminaries of the field (far too many for me to write here). His blog is regularly updated, so hopefully his slides will eventually surface there.

Telling Stories

Hillman Curtis

Telling stories was another such session.

Hillman Curtis was the Art Director at Macromedia when Flash was first born in 1998. In his talk he spoke about his journey from then until now, his work with photography, film and Web design and his influences and muses found along the way.

We saw work from his portfolio and part of his latest film; a feature length documentary on David Byrne.

Despite being another code-free talk, it was attended by all event-goers and met with a compelled atmosphere no less.

I actually though this was very well placed at the end of the day, it seemed to encapsulate everything about why we do the things we do, even if not talking directly about our software product itself.

Epiphany

Joel Gethin Lewis

That was the end of the daytime sessions. After a break we returned for the first of the ‘Inspired’ evening sessions of the week. These talks aimed to be free of code too, if not development entirely, hosted purely for inspiration and the feel-good factor.

Joel Gethin Lewis is an interaction designer and artist who previously worked with United Visual Artists.

We saw some of his work there including the brilliant Regent Street Christmas lights of 2007. The huge light installation claimed to be the first ever ‘interactive’ Christmas lights created, the formations and lights changed based upon the density of shoppers below and other factors such as surrounding weather conditions, captured by cameras and climate sensors hidden around the street.

Since then he has founded two new companies, Hellicar&Lewis and YesYesNo.

From the latter we saw their project Lights On (also currently on the YYN homepage at the time of this writing), a massive audio visual performance created for the opening of the new Ars Electronica museum. With YesYesNo, he spoke about his work with openFrameworks and Computer Vision also.

He also worked on another great project called Contact, a floor-based artwork commissioned by the British Council that tracked the motion of those walking over it and generated physics-simulated shapes and objects below them on a giant LCD surface.

The thing is, this project was developed in about two weeks and made possible only by leveraging open source software. It’s with this possibility and ultimate realisation upon Contact’s success that that Joel reached his ‘epiphany’; that in his opinion, all software not only need not be paid for but should be free and open source.

Enthused, he found a whole host of open sourced software and similar successful projects and became set on being a champion of the open source school of thought. There’s a great article from Creative Review earlier this year in which he and partner Pete Hellicar talk about their experience.

All in all, a great first day from Flash on the Beach – all boxes ticked and more, exceeding expectations already.

I do apologise for the lengthy post, worry not – I’m sure I can’t keep this up. :)

Last month I talked about Ted Patrick’s “Facebook on The Flash Platform“, an Adobe eSeminar discussing development with the Facebook API using Flash. In particular, I pointed to an open source Actionscript API library to work with in the absence of Facebook themselves offering ‘official’ support as they (then) did only for PHP and Javascript development.

This week though, Adobe and Facebook announced a partnership they’d managed to keep neatly under wraps and have now released a new official open source client library for Actionscript 3.

This joint effort is intended to be a complete resource supporting all Facebook APIs, including Facebook Connect, for all Flash and Flex applications for Facebook.

Over on the Adobe’s Facebook Developer Connection, Adrian Ludwig (Adobe) and Josh Elman (Facebook) talk about the library and the partnership. There’s also documentation, example applications, quick starts, inspiration and code.

Adobe Flash Platform - Facebook Platform | Adobe Developer Connection

In his post, Serge Jespers points to a nice quick start by Danny Dura that uses the library to set up a simple connection to Facebook in about ten minutes.

You can tell both Adobe and Facebook are excited about this, adding social elements to games, user experiences or interactions makes them endlessly more engaging, it almost goes without saying. But now that these experiences can be as easily enabled – and in my opinion, enhanced - by Flash, I hope will prove to facilitate some great applications.

It’s equally beneficial for Facebook and Adobe. It means even more applications for the Flash platform and an easily entry point for yet another set of developers to integrate with the Facebook API.

And to help kick that off, Rich Tretola at InsideRIA has announced a new series of articles covering development with the new AS3 library, authored by Mirza Hatipovic – an ambitious 20 articles, from a simple Hello World to advanced PHP and database-supported applications.

I’m particularly looking forward to seeing and playing with the Facebook Connect API – not sure if InsideRIA will cover these – but hopefully whatever I do get up to, I’ll get round to writing about.

Ted Patrick has posted a recording of his Adobe eSeminar “Facebook on The Flash Platform” that he presented last Thursday.

Josh Elman, Facebook Platform Project Manager, joins him – offering a little technical history and strategy behind the application platform and Facebook Connect also.

Facebook on The Flash Platform

It’s a good introduction to building Flash applications using the Facebook API. It’s clear that building on the Facebook platform grants developers an equal opportunity to create powerful and successful social experiences.

As Ted and Josh describe, by utilising Facebook users’ social contexts and by the ease of which you can distribute through the social graph, applications can generate a huge amount of traffic – and as Josh puts it, developers can profit wildy. ;)

Ted gives a simple overview of the architecture of a Facebook application, the various application states and talks about FBML, Facebook’s XML mark-up – and shows how to build a simple single-component Flex application that really demonstrates how easy Facebook have made the information retrieval possible via the API.

The Q&A is worth listening to (it starts around 37 minutes), Ted and Josh discuss important development aspects outside of the actual coding – how hosting is managed, handling session keys and such.

But Ted also points to a promising looking Actionscript library designed for Facebook application developers, simply called The Facebook Actionscript API - which definitely sounds worth checking out (no pun intended).

As yet, Facebook only ‘officially’ support their PHP library, but continue to work with developers in the community to support the other languages. Josh claims this will only improve over the next couple of months and through the year – hopefully (it sounded) to develop similar ‘official’ library counterparts.

Ted’s also posted his Facebook on The Flash Platform sample files.

Whilst I’m on the subject of Google and trying to finish half-written drafts hanging over from last year, I thought I’d briefly mention the release of Analytics for Flash.

Aside from capturing all the obvious generic statistics you’d expect from a Flash tracking package – and by being fluidly compatible with the main JavaScript library is capable of outputting all the core functionality of the existing Analytics components – the metrics offered by Google Analytics for Flash can be particularly designed to offer interesting insight into other aspects of your users’ activity you may not first expect. For example, you can collect data that can help you gauge levels of usability or (kind of) the implementation of design success. Seemingly you can monitor the behaviour of the users’ interaction during their visit too – as well as the length of the visit itself.

It’s all technically possibly, with Google’s introduction of event tracking that can be fired from custom interactions – whether that be a button click or video view or anything else. Along with that, the event can carry a payload, later received by your Analytics dashboard for your interpretation. It sounds simple – but it’s capable of being very powerful.

Previously, tracking your Flash content would be in isolation. That is to say, you could fire a tracking event when a user accesses a page of Flash content, but from there you were blind to their progress until navigating again.

This payload though, not only could detail traffic to specific sections within a Flash application (although in turn, separate events could be created for those) but could return data specific to that user and session. For example, the total time the user has spent in a particular place, or the site as a whole.

Depending on how complex you wish to be (and how many stats you want to trawl though later) this could offer very valuable data. But that data need not only be of value to an agency or advertiser. Counts for clicks on specific buttons aren’t anything new when you want to find out how many people click a ‘News’ link first, or if anyone notices the ‘Help’ button. This can be far more granular – to the point, as above, where the data could be used to inform decisions on say, design or usability.

Take a standard Flash video player as a media component you’re used to seeing on a daily basis. You can easily picture the common control bar. But how many people actually use those ‘Rewind’ and ‘Fast forward’ buttons? Could the design be improved?

Admittedly with Flash video components, you’re unlikely to see those nowadays ;) – but that (as I’ve picked this example) is the result of user testing, something this kind of tracking can’t replace – Jesse Warden has a strong sense of this in his post about Flash Analytics.

Anyway, the custom events let you send as (overly-) complex amount of data as you wish. Flash of course can be used everywhere, deployed as widgets or embedded on blogs anywhere on the Web. These Analytics though, are part of your application itself. So you can track its usage outside of the original HTML page the previous iteration of Analytics would have restrained you to.

And it’s free! Check out the code repo.

Exactly how search engines deal with the content of Flash-based websites and information in SWF files has notoriously been a bit of a grey area for a long time. Historically, website creators had to battle with clients as to whether the aesthetic potential of Flash was enough a pay-off against their judgement of the importance of this new idea called ‘SEO’.

In July of last year, Adobe announced a collaboration with Google (1, 2) and Yahoo! to develop a new Flash Player technology specifically to enhance the search results of dynamic content in Flash – ultimately, to make the SWF searchable.

But it was unclear how it worked, what it actually did and what provisions the Flash developer or content creators would have to make.

Peter Elst aired his thoughts and agreed as I did, it looked like a ‘backup’ or intermediary solution. There also lacked a standard or recommended approach to deploying the content for this new technology – presuming this new platform hadn’t just become instantly intelligent to all possibly methods of delivery.

Adobe later published an FAQ, but still it wasn’t very technical, so a few developers started experimenting. After seeing Peter’s attempts, Ryan Stewart announced a Flex SEO Contest – an outright declaration that we’re confused but determined to find out what exposure our content has. As well as being a bit of fun. ;)

Dominic Gelineau constructed fourteen test cases, essentially finding every possible way you could contain a simple text string in a SWF file (see 1 – 7 here, 8 – 14 here). He used both static and dynamic TextFields, populated them in various ways, MXML components, standard Flash UI components, whether to use states, etc – covering all the bases across Flash and Flex.

Initially he concluded Google wasn’t really finding anything new, but in a later article for InsideRIA he listed his principle observations:

  1. Most of the content that was on the stage/timeline at compile time would be indexed even if it was outside the viewing area.
     
  2. The TextArea, Text, ViewStack and custom MXML component in Flex would get indexed if they were in the MXML (the Flex equivalent of being on the stage) but the Label component would not.
     
  3. Until October, SWF files embedded in the HTML using JavaScript (SWFObject, AC_RunActiveContent, etc) could not be found on Google.
     
  4. Again until October, anything related to the ActionScript 3 method addChild would not get indexed. As an example, adding a MovieClip from the library with static text in it using addChild method would not show up in Google’s search results. In the same way, using states in Flex wouldn’t work. My guess is that since states uses addChild in its MXML syntax, once compiled it would get converted to the addChild method in AS3.
     
  5. Finally, any content loaded externally from the embedded SWF file wouldn’t get indexed, but was clearly stated by Google.
     

Fortunately, Jim Corbett, Flash Player Engineer at Adobe offeres some much-need clarification, answering many of these questions at the Adobe MAX conference this year. The video can be found at Adobe TV, (I’m having problems embedding it with WordPress) – it’s lengthy, and gives a good insight into the Player’s search mechanics.

Everybody’s out on the run tonight but there’s no place left to hide.