Wednesday, December 29, 2010

CityVille Explained, Part 2

CityVille Explained, Part 2:

CityVille GameConcluding his much-linked article series on the success of Zynga's 70 million user CityVille, following Part 1, design veteran Tadhg Kelly draws further from his What Games Are blog to examine the social features, channels and takeaways from the game's success[...]

Hero Interactive: All About BT3 Enemies

Hero Interactive: All About BT3 Enemies:

BT3 Enemies Game screenshot

We’ve gotten a lot of questions about how enemies work in Bubble Tanks 3 and I’ve finally gotten around to writing a post about the subject.  If it interests you, go read it at BubbleTanks.com!

http://www.bubbletanks.com/?p=151

Making a Flash game like Plants Vs Zombies

Making a Flash game like Plants Vs Zombies:

As promised in fully explaining a PopCap game post, here we go with Plants Vs Zombies.

Plants vs Zombies

I have to say I am not a great PvZ player (shame on me), so if you notice something wrong during the series, let me know.

Defining the main structure of the game

PopCap did a great look and feel job with PvZ as defending your house from brain eater zombies has a great appeal… and all in all killing zombies is fun, as confirmed by blockbuster like Resident Evil, Left 4 Dead and Dead Rising. But this has nothing to do with the gameplay, which could be Butchers Vs Plumbers, Pigeons Vs Camels or Circles Vs Squares.

During the series, good circles will prevent evil squares to get to the base. Also, the structure of the game field can be simplified in a tile based game [...]

ActionScript 3.0 and PHP Design Patterns: January 6-7 New York City

ActionScript 3.0 and PHP Design Patterns: January 6-7 New York City:

ith partial funding from the National Science Foundation, CUNY (CCNY campus) invited me to do two workshops on design patterns: one on ActionScript 3.0 and the other on PHP. The workshops cover a wide range of basic OOP topics to Design Patterns. Check it out here. The last talk I gave was also in NYC, and [...]

Live Q&A Show : The Flex Show Episode 130

Live Q&A Show : The Flex Show Episode 130:

John and I got together on Adobe connect and recorded this episode live in front of an audience. This was experimental for us, so be sure to let us know how you thought it went.

Notes

Contact

Introducing SimpleStageVideo

Introducing SimpleStageVideo:

SimpleStageVideoIf you played with Stage Video, one of the coolest feature of Flash Player 10.2. You may have noticed that this it requires a little bit of code to be leveraged and you have to deal with multiple events (StageVideoEvent, StageVideoAvailability, VideoEvent) to be used properly. While writing the Stage Video article for the Adobe devnet I realized that the need of a wrapper would be useful for developers, and a few days ago I came across StageVideoProxy by Kenny Bunch which is intended to simplify the use of Stage Video. This confirmed the idea that AS3 developers will need little wrappers for Stage Video, I know Tinic has his own version too for his tests.

Here is my version a little bit different, which should handle all the situations, switching automatically from Video to StageVideo and vice versa when Stage Video becomes available or unavailable. It handles all this automatically so you do not have to worry about it. It also handles something I ALWAYS need in my video players, respecting the video ratio when giving a specific maximum width and height to fit a specific surface to display the video :

To use, it is very simple, just use a few lines code [...]

Tuesday, December 28, 2010

JSFL Script to Ensure Actual ActionScript Classes Exist for Symbols

JSFL Script to Ensure Actual ActionScript Classes Exist for Symbols:

One way to design or skin ActionScript 3 projects is using the Flash IDE for graphical assets.  You export your FLA as an SWC, and you can utilize those assets in your AS3 and/or Flex project.  Flash CS3/CS4/CS5 have the ability to link to an ActionScript 3 class that represents the code behind the Symbol.  If the Flash IDE doesn’t find the class in its source paths, it’ll create one for you.

The downside is, when you compile, you do not get errors if the Flash IDE didn’t find a class for a particular Symbol that’s set to have one.  Maybe you mis-typed the package path or class name.  Maybe you forgot to set the class path for the FLA.  Maybe the FLA is in the wrong place.  Whatever the reason, your code “won’t work” and you won’t know why.  You may not get code hints in Flash Builder / FDT / IntelliJ, and certain other dependencies may be missing as well and you’ll be left wondering why.

Flash CS5 Check ClassThe Flash IDE provides a check mark button next to the linkage class to allow you to confirm or deny Flash can find the class.  In a quick scan of the JavaScript for Flash docs, I could not find a way to use this button’s functionality in JSFL.  So, I wrote a quick script that does[...]

2011 Conferences

2011 Conferences:

Here are a list of conferences worth checking out in 2011 [...]

CityVille Explained, Part 1

CityVille Explained, Part 1:

In the first of a two-part series, design veteran Tadhg Kelly draws from his What Games Are blog to explain the rise to power of Zynga's massively successful social game CityVille [...]

Rapid Implementation (UAV Game)

Rapid Implementation (UAV Game):

Earlier this month, Remy Karns, a student at UC Berkeley, called me for help with implementing his 3 page design document.

7 hours later, I had UAV Game made based on his spec (play in Flash, no download/install required). UAV is short for Unmanned Aerial Vehicle.

I wrote an article about this game for the Newsgames Blog that will go online soon, though that one has a journalism angle. In contrast – and fitting with this blog’s purpose – this post instead focuses on the game’s rush development.

Foundation Code

Rather than memorize the details of how to handle keyboard/mouse input, basic graphics, sound playing, and framerate timers in each programming language, I prefer to start with a source file that’s little more than an image being loaded and shown, a sound being loaded and played, and a little input being taken, so I can duplicate and rearrange. In this case, I started from the example code that I put together for ActionScript 3 – Motion Tutorial, removing aspects I wouldn’t be needing.

Isometric

In order to make isometric building art, I turned on the grid in my image editor, then drew using diagonal lines that went 1 tile vertically for every 2 horizontal tiles.

That 1:2 ratio works since sin(30 degrees) = 0.5. The simplicity of this is part of what makes isometric a popular way to fake 3D.

Likewise, for the moving AI targets, I set their vertical movement to only have their horizontal speed. For the burnt crater graphic that gets drawn after the explosion, I first draw a circle from overhead, then scaled it to half height.

For distance checks, such as determining which guys are within the blast radius, I doubled the Y offset [...]

Monday, December 27, 2010

For Vs. While Revisited

For Vs. While Revisited:

I wrote an article last November titled For Vs. While that needs a bit of updating an expanding today. While I updated the performance figures in my series on Flash 10.1 performance, I continue to get questions in the comments section of the original article that explore new areas. So today we’ll look at the [...]

Understanding Scala Implicits

Understanding Scala Implicits:

Many languages make use of implicit conversions. Scala is the only language I know of which makes implicit definitions a feature.

It is very easy to understand an implicit conversion since most programming languages do this already for you. Here are two examples (AS3/Java):

trace('Implicitly converted: '+1)
System.out.println('Implicitly converted: '+1);

We only have to care about the expression 'Implicitly converted: '+1 which will result in “Implicitly converted: 1″. Why does this happen? We have a string on the left hand side of the expression and an integer on the right hand side. When the compiler of your choice needs to emit code for this kind of expression it will widen the type of both operands. In this case the resulting type would be String since an implicit conversion from integer to String exists in both ActionScript and Java. If no such conversion exists you would probably get a compile time error.

The compiler inserts this conversion for you. In this example we can make use of an explicit conversion:

trace('Explicitly converted: '+1.toString())
System.out.println('Explicitly converted: '+Integer.toString(1));

[...]

Position and Speed Variables

Position and Speed Variables:

The impression of spatial continuity – that an object exists at some location, and stays there until it moves to an adjacent position – is not assumed by a computer. This seemingly natural behavior has to be described in code by the programmer.

Fortunately, there is a pattern for this.

It can seem obtuse the first time or two it’s seen – it did for me – though once used a few times its workings become clear.

Side Note Regarding Flash Programming

ActionScript 3 supports a variation of this, by drawing to BitmapData as the Everyone’s Platformer engine does. Otherwise, the Sprite and addChild system commonly used in AS3 (example) bypasses redraw details described in this article.

Overview

What follows assumes very little prior experience, so there’s plenty of text in an effort to be thorough. There are only a few points, though:

  1. Create number variables to store the position of the thing to be drawn.

  2. Use those variables as coordinates when drawing the image for that thing.

  3. Change those variables to move it.

  4. Create additional number variables – to treat as speed for horizontal and vertical movement – and add those to the position variables every frame [...]

Sunday, December 26, 2010

Functional ActionScript Part 2: Trends in Functional Programming

Functional ActionScript Part 2: Trends in Functional Programming: Last week, I explored some of my conceptions–correct and otherwise–surrounding functional programming. This week, I'd like to talk about use cases for functional programming, tools that use functional techniques, and ways that you can use functional concepts without passing function [...]

A Year Of Scala

A Year Of Scala:

About a year ago I started using Scala. A programming language I felt in love with after all. The one and only programming language that started making me smile when I was happy to see how elegant I can express my ideas.

I have been trying to spread the word about Scala during various Flash conferences and always tried convincing my colleagues and friends to learn this great language. A blog post by Alan Shaw about his experience with Haskell inspired me to write about my journey.

Why Scala

I was very unhappy with ActionScript and Java last year. ActionScript is a good start but needs to adapt the features of the dropped ECMAScript 4 proposal to become interesting and competitive in my humble opinion. Java on the other hand is only interesting to me because of its virtual machine. The language itself is simple and has the features you need to get the job done.

I got very late into the Java game and missed the bumpy early years. However I was never earning money with Java since I was doing only open source[...]

The Experiment, Part 3

The Experiment, Part 3:

This post is long overdue, but it’s finally here! So what’s the verdict?

FAILURE

All of the goals I set for the games failed miserably, the games got played nowhere near the amount of times I had expected and earned nowhere near what I expected. So what went wrong? The short answer is a lot of things, I failed to polish the games, I failed to make the core mechanics fun, I failed at following all the advice that I’ve blogged about in the past, but before I get into too much detail let’s start off this post with some numbers…

Monolith Guardian

Plays: 134,000
CPMStar Earnings: $60
NG Score: 3.81
Kong Score: 2.71

Beyond Escape

Plays: 32,000
CPMStar Earnings: $20
NG Score: 3.57
Kong Score: 2.79

Save The Egg

Plays: 15,000
CPMStar Earnings: $1
NG Score: 3.07
Kong Score: 2.32

Now for the long answer on what went wrong [...]

Mockolate

Mockolate:
Mockolate is a framework to create mock objects and test spies for AS3. A mock object can be used to simulate the behaviour of complex, real (non-mock) objects when using the real object would be impractical or impossible. Situations where a mock object would be useful:
  • When an object is slow (like a database or webservice),
  • is non-deterministic (like the current time),
  • has states that are difficult to reproduce (like network connections

The Evolution of Gaming

The Evolution of Gaming:

Here’s a short ramble I wrote around a month ago that was meant to be on the addictiveness of games, but ended up turning out completely differently than I expected. I only briefly proofed it so please excuse any glaring spelling or grammar mistakes.

Casual Games vs Hardcore Games

There are casual games and hardcore games, the problem with casual games are that they only hold the users attention for a maximum of a few hours and only allow for a limited number of play sessions. Users see very little value in these games making them unlikely to want to invest any real money. On the other hand there are hardcore games; these games make users spend the upwards of 10 hours a day playing their character to either improve its stats, obtain some sort of item, or improve skill level (Mainly for multiplayer games). In order to make a hardcore game I believe you need two main attributes:

1) The game must have an infinite amount of gameplay in which possibilities are endless.
2) There must be a community built up around the game (Social Aspect)

The first point is the most important, if your game has a certain game complete point then a user has no reason to play beyond that. If the game happens to be extremely addicting they might give it a few more playthroughs before they quit, but the amount of time any normal player will invest will be be minuscule compared to games in which you can constantly improve [...]

Saturday, December 25, 2010

Quick Tip: Create a Minimalistic SandClock Using ActionScript 3

Quick Tip: Create a Minimalistic SandClock Using ActionScript 3:

Read through the easy steps in this Quick Tip to create a Minimalistic SandClock with ActionScript.


Final Result Preview

Let’s take a look at the final result we will be working towards:


Step 1: Brief Overview

Using Arrays and a premade square MovieClip we will create a SandClock that will be animated by a Timer.


Step 2: Set Up Your Flash File

Launch Flash and create a new Flash Document, set the stage size to 400x250px and the frame rate to 24fps.


Step 3: Interface

This is the interface we’ll be using, the squares in the image are actually one single blue square MovieClip exported for use with ActionScript, with a linkage name of Square. A simple button named startButton will be used to build and start the clock.


Step 4: ActionScript

Create a new ActionScript Class (Cmd+N), save the file as Main.as and write the following lines. Read through the comments in the code in order to fully understand the class behavior[...]

Friday, December 24, 2010

Seesmic-AS3-XMPP

Seesmic-AS3-XMPP:

Seesmic-AS3-XMPP is an all new XMPP 1.0 compliant library for Flash 9+. It features an easy to understand event-driven style, starttls support (using a modified Hurlant TLS lib), and a plugin based architecture for easy extending.

PatternCraft – Proxy Pattern

PatternCraft – Proxy Pattern: PatternCraft is a series of video tutorials that use StarCraft references to teach Design Patterns. This video is the seventh in the series and covers the Proxy Pattern. You can watch it in the player below or just download it here to watch however you’d like: Download video Source is here: http://github.com/johnlindquist/johnlindquist.com/tree/master/ProxyPatternDemo/src/

Thursday, December 23, 2010

Creating Realistic 3D Animation in Flash CS4

Creating Realistic 3D Animation in Flash CS4:

Flash CS4 came with some big changes and features that still amaze us even after the more recent release of Flash CS5. Flash now has the ability to work with objects in 3D space directly within the working environment.

Although it’s still a basic feature compared to what you can do with 3D in ActionScript classes, this tool opens the door to designers and animators who don’t know much about code. It allows them to start moving their objects in 3D space without the need to use old methods (such as importing 3D animation in sequence images etc.)

Along with the 3D tool, Flash has changed the way we understand motion tweening by adding the new motion tweening style, which is more like the animation auto-key in After Effects. Along with the motion tweening changes, Flash comes with the Motion Editor. This panel has a lot of features and capabilities giving the animator more control over animation in Flash using animation curves.

The Motion Editor panel not only enhances animation by giving more options through curves control, it also provides control over animation easing, lending a more realistic look. The easing concept is known in many animation applications such as After Effects, but it was previously so basic in Flash and limited to changing the easing value from 100 to -100. The newer easing features give you more ability to control animation easing as we will see in the steps below.

In this tutorial, we’ll merge the 3D and easing features by creating 3D animation in Flash and also applying the easing curves.


Final Result Preview

Let’s take a look at the final result we will be working towards:

The first part in our tutorial is to build the cartoon scene for a room with a door.


Step 1: New Document

Open a new Flash document with the dimensions 600px X 450px and start drawing the outline of the room demonstrated in the figure below [...]

Molehill FAQ Video with Thibault Imbert

Molehill FAQ Video with Thibault Imbert:

Today I was in the Adobe San Francisco office and I shot a quick interview with Thibault Imbert with the aim of answering some of the most frequently asked questions relating to the new 3D API, codenamed Molehill. Hope you enjoy it and thanks to Thibault for doing it [...]

Squeezing More Juice Out of the Flash Player

Squeezing More Juice Out of the Flash Player: "

In this tutorial you’ll build an extreme particle system whilst learning how to squeeze more efficient goodness out of the Flash Player than you ever thought possible!


Final Result

Here are a couple of examples of what we’ll be working towards:

demo_link_particles

EPILEPSY WARNING:
Please don’t view this demo if you are likely to suffer from epileptic attacks or loss of consciousness, particularly when looking at some types of strong flashing lights, rapid succession of images, simple geometric shapes, flashes or explosions.


Introduction: What Will You Learn?

Many users, from beginners to advanced, can still be seen using less than efficient Actionscript 3.0. In all likelyhood, this is because the efficient ways are made to sound a bit more difficult and aimed at highly advanced users. This tutorial will show you that these methods can be used by everyone, and they’re more useful than you may think!

The aim of this tutorial is to let you tackle those tasks that require working with a lot of data, very fast, with ease.

Helpful Hint: This tutorial will feature a lot of coding so I recommend using a more user friendly coding interface. I recommend FlashDevelop, it has some of the best code hinting around and best of all, it’s completely free! But I’m sure most of you will just copy and paste if do anything at all :)


Step 1 Check out That FPS!

At the heart of making all things efficient in the Flash Player is the FPS (Frames Per Second) of your SWF. The proffered target of your SWF can be set in the Flash Professional interface or, a new feature in Actionscript 3.0, you can change the FPS of the stage at runtime.

stage.frameRate = 30;
trace(stage.frameRate); //30

However, this will only ever get and set the target FPS (what the Flash Player will attempt to play at), which makes it pretty useless for preformance testing. You might think that the lovely folks over at Adobe would made a nice neat way to find you real FPS but, nope. You’ve got to do the math for yourself. Let’s take a look.

FPS can be defined as the time difference between the current frame and the last.
So all we need is some way to track the time difference from this frame to the previous frame of the SWF[...]

Resetting Accessibility in Games

Resetting Accessibility in Games:

To what end accessibility? Gamasutra speaks to Valve and other developers about creating games for different audiences about the very good reasons you should consider making your game more easily played.

Complete Flash Profiler – It’s getting serious!

Complete Flash Profiler – It’s getting serious!: "

There was the first version, that wasn’t even looking like a profiler..
Then there was FlashPreloadProfiler Alpha and Beta..
But often I had to fallback on Flex Profiler to do the Performance Profiling.

Here is the first version that should be considered as a “fully qualified Flash AS3 profiler”.

Here is FlashPreloadProfiler RC1!

It has the basic features:
-Memory profiling
-Function Performance profiling (New!)
-Convivial UI (New!)

And it has the unique features:
-Overdraw graph
-Mouse Listeners graph
-Internal events graph
-DisplayObject Lifecycle graph
-Full Sampler recording “dump”
-Memory allocation/collection “dump” (New!)
-Function Performance “dump” (New!)
-Auto-Integration with De MonsterDebugger
-Run on debug/release SWFs

I can now officialy say that I don’t need any other tool anymore to optimize standard AS3 code. (Discussion on Molehill (Flash 3D) optimization will come soon!!) [...]

6 hand-picked Actionscript 3.0 Tutorials

6 hand-picked Actionscript 3.0 Tutorials: "

- Vertical 3D Carousel with ActionScript 3 and XML - Create an Impressive Magnifying Effect with ActionScript 3.0 - Simple Physics with Friction & Gravity - Flash MP3 Music Player Tutorial – AS3 - Image Appearance Effect : Fall Down - Displaying Google Maps in Flash Using ActionScript 3

"

Wednesday, December 22, 2010

Functional ActionScript Part 1: Thinking Functionally

Functional ActionScript Part 1: Thinking Functionally: Several months ago, I came across a blog post, Separating Event Handling From Event Filtering, by Thero Hultberg. At the time, I thought it was a cool idea, but obviously it was impractical at scale because the proposed solution [...]

As3kinect

As3kinect:

As3kinect is a set of libs and programs that allows AS3 code to interact with Microsoft’s Kinect.

OS support:

  • Linux
  • OSX
  • Windows

Functionalities:

  • 3 sockets (data, rgb, depth)
  • RGB Camera.
  • Depth Camera. (Depth limit for ease hand detection now, will be configurable).
  • Motor tilt in degrees (-31 to 31)
  • Led color state (Not yet)
  • Accelerometer info.
  • Blob detection
  • Touch events

Tuesday, December 21, 2010

MochiLand: Tips and Tricks When Developing Your Flash Game on Android

MochiLand: Tips and Tricks When Developing Your Flash Game on Android:

This is a collection of thoughts and tips when developing Flash games targeted to a mobile, more specifically to Android using Adobe’s AIR . I write these notes with a specific focus on full screen games. I’ll cover a few things to think about when designing your game, and a then a few tips and tricks to keep in mind that will [hopefully] save you finding out the hard way.

Planning for Mobile

Before you start making a game for mobile there are some important things to consider, which will save a lot of time and stress if you plan for them.

Type of Gameplay

The type of games typically played are very short bursts of gameplay – while traveling, sitting on the toilet, watching TV. Gameplay that can be stopped and started very quickly. Short bursts of gameplay are very typical of the mobile platform and your games should be made to work with this.

A couple of your options are:

  • make your games levels short and sweet, saving the players progress as they complete stages
  • make the game save it’s state so that it can be stopped quickly and continued at a later time very easily
  • make a game that is only about the score from a single session of play, save that score as soon as it’s achieved

I recommend you keep your games very simple (though still fun) at first, until you get the hang of publishing for this platform and finding out it’s pitfalls. It’s better to get content out there and learn from your mistakes than embark on a huge project and make costly mistakes.

Controls

With mobile phones mostly having touch screens, and a few phones having very small keyboards it’s important to make your game very easy and simple to control. Typically there is no mouse, no arrow keys (or space bar) and screen sizes can be a factor in how much you can fit on a screen at once.

The best option is to choose an intuitive control method, that perhaps adapts to the gameplay. For example, with a vertical scrolling space shooter game you could make the players ship constantly fire bullets with the player simply steering the ship around with their finger, and for a powerful shot the player could double tap their ship. It also pays to remember that fingers get in the way of the screen, so your gameplay should allow for rather large obstructions (for example: my hands are much bigger than my wife’s). If you have a character or ship that the character controls, consider positioning them above where the players touch point will be so that it is still visible during play[...]

Write high quality unit tested Actionscript 3 for fun and profit…

Write high quality unit tested Actionscript 3 for fun and profit…:

For the past year or so unit testing has been one of my favorite subjects. There are tons of books on the subject, but several really stand out. Here are my favorites so far:


Clean Code by Uncle Bob Martin

This book does cover unit testing a bit. It isn't the focus of the book, but regardless it sits here at the top of my unit testing list. Why? Because the hardest part of writing unit tests is writing code that can be tested in the first place. Get it. Read it. Learn it. Seriously. Uncle Bob rides in the vanguard in the battle against horrible dirty code[...]

Best practices for real-time collaboration using Flash Media Server

Best practices for real-time collaboration using Flash Media Server: Take advantage of RTMFP to build real-time collaboration apps that succeed despite the connectivity challenges of the Internet.

Display list programming in ActionScript 3

Display list programming in ActionScript 3: "This article covers common tasks when you work with the display list in ActionScript 3, which contains all the visible elements in your Flash application.

delicious-flex-client (a.ka.a 'Yumify')

delicious-flex-client (a.ka.a 'Yumify'): "What with the ongoing drama around Yahoo's Delicious product, I discovered that there are many alternative services with similar features. I moved to Pinboard, which has a compatible API. I whipped up an open source management client for Delicious and [...]

Getting started with stage video

Getting started with stage video: Render video on devices by taking advantage of the underlying video hardware and by using the StageVideo API in Flash Player.

Printing with Flex

Printing with Flex:

Extend Flex components to give them PDF-generation capabilities (excerpted from Enterprise Development with Flex).

Technical guide: Upgrading Flex 3 applications to Flex 4 SDK

Technical guide: Upgrading Flex 3 applications to Flex 4 SDK: Get the information about upgrading your Flex applications to the current version of the Flex SDK.

Optimizing performance for the Flash Platform

Optimizing performance for the Flash Platform:

Learn best practices for apps running inside a mobile browser, as well as on desktops and devices.

Saving data locally in a custom application for Adobe Connect

Saving data locally in a custom application for Adobe Connect: Learn how to create a custom application for Adobe Connect that saves data locally on the user’s machine.

Monday, December 20, 2010

Glassify Your Text Using Flash Filters – Basix

Glassify Your Text Using Flash Filters – Basix:

In this tutorial you will be converting your text to give it a glass-like effect, using filters in Flash. This technique also works on vector graphics. We will achieve it with a fairly simple method of overlaying multiple layers with different effects.


Final Result Preview

Let’s take a look at the final result we will be working towards. This is a swf file and the text below is selectable, so go ahead, select the glass text to see a glass-like highlight:


Step 1: Create Your Text Field

Open your version of Flash and open a new Flash file. ActionScript version does not matter for this tutorial, as there is no code. In your file, put a text field onto the stage. To do so, click the text button (T) on Tools menu and drag a rectangle on stage as shown in the image below:

click on text field and draw it on stage

Step 2: Select a Large and Bold Font

Once drawn, you can enter your choice of text in the field and set its properties accordingly. The glass effect is more prominent on larger and bolder fonts so I have chosen Elephant here, but you may chose any font you like. Click the Selectable button to make the text selectable in final SWF. The color of the font does not matter here

set text properties

Step 3: Add Some Vector Graphics

Optionally, you may want to see how the effect works on vector graphics. So I will just draw a small graphic using basic Flash drawing tool. Note that glass effect will not take into account the outlines or colors, so plain old graphics in a single color are enough for the moment. Once done with Steps 1 and 2, you will have something like this on your stage:

vector included

You may import vector graphics to Flash surface as well but take note that color differences are not detected by this effect [...]

Definitive isNaN()

Definitive isNaN(): I wrote an article in November 2009 titled Faster isNaN() and a followup to it titled Even Faster isNaN() and continue to get comments on both, so today I’m doing a followup to bring together both articles and the many comments on them into one definitive article. In the first article, I derived a method [...]

New Tutorial on Physics Using Box2D and WCK

New Tutorial on Physics Using Box2D and WCK:

I just uploaded a new tutorial that shows you how you can add physics to your Flash projects using the Box2D physics library. In particular I show you how to do this from Flash CS5 without writing any code by taking advantage of an amazing new library called the World Construction Kit.

PatternCraft – Decorator Pattern

PatternCraft – Decorator Pattern: PatternCraft is a series of video tutorials that use StarCraft references to teach Design Patterns. This video is the sixth in the series and covers the Decorator Pattern. You can watch it in the player below or just download it here to watch however you’d like: Download video Source is here: http://github.com/johnlindquist/johnlindquist.com/tree/master/DecoratorPatternDemo/src/

Sunday, December 19, 2010

Hot Failure: Tuning Gameplay With Simple Player Metrics

Hot Failure: Tuning Gameplay With Simple Player Metrics: "

In this article taken from Game Developer magazine's September 2010 issue, Google game developer advocate Chris Pruett describes how he quickly and cheaply implemented useful metrics into his Android game, Replica Island [...]

Fully explaining a PopCap game

Fully explaining a PopCap game:

Do you like PopCap games? I love them. They are quick, easy to play and fun, the perfect for making a Flash tutorial series.

Starting from Monday 27 December I will make a new Flash tutorial series about a PopCap game. Which one? You decide.

Leave a comment to this post with the name of the game you want to see explained, with only two restrictions:

1) It must be picked among online games.

2) It can’t be one of Bejeweled series.

No other restrictions. On Sunday 26 December at 11:59 PM GMT +1 I will count the comments and the game will be explained starting from the following Monday [...]

Saturday, December 18, 2010

EaselJS html5 Flash-like Javascript Library by Grant Skinner

EaselJS html5 Flash-like Javascript Library by Grant Skinner:

EaselJS is a new library from Grant Skinner that somewhat mimics the Flash display list/display object heirarchy.  It is the result of the game Pirates Love Daisies which demonstrates some great gameplay in html5.

The API is loosely based on Flash’s display list, and should be easy to pick up for both JS and AS3 developers. In our preliminary testing, Easel appears to be fully compatible with iOS, Android, and all major browsers that support the canvas element.

Lots of great javascript libraries have been made public including such contributions as this, Three.js (3d canvas/svg/webgl), Lettering.js (typography), audio.js (audio) and many many others, a complete pipeline is emerging. EaselJS adds to that a helpful flash like api for html5 (<canvas> + javascript).

The API contains these familiar classes for Flash/AS3 developers:

DisplayObject

Abstract base class for all display elements in Easel. Exposes all of the display properties (ex. x, y, rotation, scaleX, scaleY, alpha, shadow, etc) that are common to all display objects.

Stage

The root level display container for display elements. Each time tick() is called on Stage, it will update and render the display list to its associated canvas.

Container

A nestable display container, which lets you aggregate display objects and manipulate them as a group [...]

Friday, December 17, 2010

Easel JS Simplifies Working with Canvas in HTML5

Easel JS Simplifies Working with Canvas in HTML5:

The new Canvas element in HTML5 is powerful, but it can be difficult to work with. It has no internal concept of display objects, so you are required to manage updates manually. The Easel Javascript library provides a full, hierarchical display list, a core interaction model, and helper classes to make working with Canvas much simpler.

We built Easel based on what we learned while building Pirates Love Daisies, then retrofitted the game to use it. Development on the project would have been a lot simpler if we had Easel from the start.

Easel is being released for free under the MIT license, which means you can use it for almost any purpose (including commercial projects). We appreciate credit where possible, but it is not a requirement.

Examples, API documentation, and the latest version of the library can always be found at EaselJS.com [...]

Pirates Love Daisies HTML5 Game Launches!

Pirates Love Daisies HTML5 Game Launches!: "

I’m extremely excited to announce the launch of one of our recent projects: Pirates Love Daisies!

Microsoft approached us a few months ago and asked to work with us to build a best of breed tower defense game in Javascript and HTML5. I was a bit hesitant at first – it’s been quite awhile since I worked with JS and HTML in any great depth, and most of my memories were of fighting browser incompatibilities and cursing the lack of decent developer tools. However, we did some quick code spikes to get a feel for what was possible and decided that this was a great opportunity to gain some applied experience with a new technology while working on a fun project.

Concept
We teamed up with local illustration group Pulp Studios and started brainstorming ideas for the theme of the game. Fairly early on we latched on to the idea of pirates (I mean really, who doesn’t like pirates!), but we needed something for them to defend. We considered going with the typical tower defense model, and simply have the user prevent creeps (enemies) from getting from point A to point B, but I’ve never liked that narrative. What exactly is at point B that’s so important?

We decided that the creeps were out to steal something valuable from the pirates, but we weren’t sure what that should be. Gold was an obvious choice, but it was boring, and it made more sense as the currency for purchasing units and upgrades. Then it hit us… Daisies!

Why daisies? Because Pirates Love Daisies, of course. The fact that daisies are visually iconic, seemed to be appropriately fun and quirky, and would work well aesthetically may have factored in as well.

With the illustrators working on sketches, we got down to writing code [...]

Alternativa3D 7.6.0 update

Alternativa3D 7.6.0 update:

Alternativa3D 7.6.0 update and 3ds Max 2010 plugin update is at the site.

Changelog:

  • View: removed interactive property. Now View is the source of mouse events and interactivity can be controlled using mouseEnabled property.
  • View: getObjectsUnderPoint() method was overriden. Now it returns an array of 3d-objects under point.
  • Object3D: added useHandCursor property.
  • Object3D: added concatenatedMatrix property.
  • Removed Geometry class.
  • Mesh: all methods working with vertices and faces moved from Geometry to Mesh.
  • Vertex, Face: added optional id property.
  • BSP: added createTree() and destroyTree() methods.
  • Occluder: added createForm() and destroyForm() methods.
  • Skin, Joint: работа с дочерними джоинтами организована наподобие как в Object3DContainer с дочерними объектами.
  • Skin, Joint: API for children manipulation is unified with Object3DContainer.
  • Sprite3D: added autoSize property.
  • BSPContainer: changed createTree() method parameters.
  • Added EllipsoidCollider class for continuous collision detection.
  • RayIntersectionData: added uv property.
  • Animation API reworked. Added new animation and blending types.
  • ParserCollada: changed animation related API.
  • Parser3DS: added getObjectByName() method.

Thursday, December 16, 2010

Smoke Effect With Papervision 3D

Smoke Effect With Papervision 3D: "

In this tutorial the author, being inspired by the latest PS3 boot menu, creates colorful art using curves in Papervision 3D. Let’s also try to create a dynamic and really good looking smoke effect.

"

Join The Flex Show for a Live Q&A Session!

Join The Flex Show for a Live Q&A Session!: For the final episode of this year, we've decided to do a live Q&A session, where you can come and ask us questions about the show and the state of Flex. This will take place using my connect room on Monday December 20th at 7pm Eastern Time. Convert the time to your time zone here. This is experimental for us, and we're not sure what to expect. If you ever wanted to know anything about the show, this is the chance to get info from the horses mouth. How do we do it? What are some of our favorite show moments? Do we prefer Coke or Pepsi? Do John and I fight? If the Hulk fought Spiderman, who would win? We'll have the answers! So, come hang out with us for an hour or so and we'll see what happens [...]

Complete Bejeweled game in less than 2KB

Complete Bejeweled game in less than 2KB: "

You should know Bejeweled from PopCap Games.

Bejeweled screenshot

It’s a game which have been played millions, if not billions, of times. Now PopCap just released the 3rd version of his blockbuster.

To celebrate this event, just like I made when I coded a complete Flash Sokoban game in less than 2KB, I made a Bejeweled version in less than 2KB. The swf file is 2.035 bytes, less than the 2048 need to make 2KB.

Do you think it does not have any feature? Take a look:

* colorful representation of all 7 kinds of jewel
* select a jewel clicking on it
* swap jewels only if they make a chain
* combo chains recognizing
* falling jewels animation
* complex (let’s say “not that basic”) score system
* hint on a possible move when clicking outside the game area

Everything in less than 2KB. The code was mode with the only purpose of making the game fit in less than 2KB, there’s not readability nor optimization.

Here it is the source:[...]

Wednesday, December 15, 2010

Michael Plank talks about Parsley: The Flex Show Episode 129

Michael Plank talks about Parsley: The Flex Show Episode 129:

We had a chance to chat with Gary about using the Amazon web stack with your Flash and Flex apps

Notes

Contact

Flex Development using Notepad++, the Flex SDK, and Ant...All Completely Free!

Flex Development using Notepad++, the Flex SDK, and Ant...All Completely Free!: 'Flex is a highly productive, free, open source frameworkfor building expressive web applications.' This is taken directly from the Flex product page on Adobe.com (emphasis mine). However, after talking to many web developers over the years, I've come to find [...]

Tuesday, December 14, 2010

Building a 3D Business Card With Pure AS3

Building a 3D Business Card With Pure AS3:

In this tutorial we’ll build a 3D business card. We won’t use Away3D, Alternativa, Yogurt3D, Sandy3D, Papervision3D or any other 3D engine built for Flash. We’ll use only the 3D features of Flash Player 10.


Final Result Preview

Let’s take a look at the final result we will be working towards:

Click it!


Step 1: Create new FLA

Create a new ActionScript 3.0 file.


Step 2: Edit Profile

Before editing, let’s save our document as "BusinessCard3D.fla" into any folder you want.

After having saved the document, write "BusinessCard3D" into the Class field to set a document class. [...]

Read more: Building a 3D Business Card With Pure AS3

Fireworks Show in AS3

Fireworks Show in AS3: "New Year is close and this tutorial will show you how to create fireworks in AS3."

Construction of a Steiner Chain

Construction of a Steiner Chain: "The Steiner chain is a set of circles inside an outer circle, where all circles are touching their neighbor in a single point. Naturally the first version within Flash is already made by Mario Klingemann in 2002 to create some nice artwork. He also has a AS3 version in his libs. My version is rather optimized [...]"

ActionScript 3 library CommandCollection released

ActionScript 3 library CommandCollection released:

Juten Tach,

today i release a little library i have been working on for quite a while. It contains three little class collections, i have used in the past and i thought, they might be useful for some.

CommandCollection is a little ActionScript 3 library around using commands. It includes three tools:

  • Process
  • BranchProcess
  • StateMachine

Process is essentially a queue, in which you can put commands (synchronous or asynchronous), which will be executed sequentially.

BranchProcess is similar, but allows you to build a tree of commands with the ability of one commands result having an impact on which command comes next.

StateMachine is a classical finite state machine, that supports input commands for each state and is navigable. Means, you can aim for a state and the state machine will calculate a path to the target state and will try to reach it.

CommandCollection comes as .swc for integration into your project. Go check it out at http://code.google.com/p/command-collection/.

Monday, December 13, 2010

Hacking or design patterns?

Hacking or design patterns?: "Earlier this year, I made a statement defending hacking in an interview for Oracle. Yesterday, I found a thread on theserverside.com where java developers were sharing their view on the subject. In this blog I’ll take the same two quotes [...]"

Function Length

Function Length: "In my last article on getProperties, there was one strange finding in the tests of standard classes: the Function class seems to have a length field. What is it? Today we’ll see In the test results, both the dynamic Function and the method have a length field. Oddly, Adobe’s documentation does not mention this field. [...]"

ActionScript 3.0 Saturated Abstract Factory 4: What’s a Factory?

ActionScript 3.0 Saturated Abstract Factory 4: What’s a Factory?: Abstract What? I like factories. When the Client makes a request through a factory, it decouples the Client from the process of creating the requested service. That means I have no worries about the building process; I just ask the factory, and it takes care of everything. After all, why should the client be involved in [...]

Flashgamm 2010 Kyiv Presentations

Presentations: "

Presentations from the conference Flash GAMM Kyiv 2010 are available on the website.

"

Why use Flex Libraries

Why use Flex Libraries: "Last week, I wrote about issues I've encountered using Library projects and ways to overcome them, and one commenter replied: "sounds like 3 reasons NOT to use flex libraries to me." I'll admit that I was tempted to reply [...]

Mandelbrot Plotter - Generate and Export Beautiful Fractal Images in Flash

Mandelbrot Plotter - Generate and Export Beautiful Fractal Images in Flash:

We present a major Flash project for your enjoyment! This Flash-based Mandelbrot Plotter allows you to create and save advanced, rich fractal images. The application is full of zooming and coloring features which give you a great amount of control over your images. The images can be large and can be saved in JPEG or PNG formats. Complete source code available for your perusal.

Read more: Mandelbrot Plotter - Generate and Export Beautiful Fractal Images in Flash

Quick Tip: Creating a Snapshot Tool in Flash

Quick Tip: Creating a Snapshot Tool in Flash: "

In this Quick Tip, I’ll show you how to create a Shapshot Tool that copies part of the stage and saves the result as a PNG image.


Final Result Preview

This is the final result. Just click the stage and then drag the mouse to take a snapshot.


Step 1: Download the as3corelib Class

Create a new folder for this project and give it any name you want. Go to Github and download the latest version of the as3corelib Class. For this Quick Tip I’ve used version .93. Extract the ZIP file and go to as3corelib-.93 > src.

Copy the com directory to your newly created folder. This package has a very useful PNGEncoder Class that we will use for encoding the
snapshot into a PNG image.


Step 2: Setup your Flash File

Launch Flash and create a new Flash Document. Make sure it’s set to publish to Actionscript 3.0 and Flash Player 10. You can check this in the Properties
panel or by selecting Publish Settings… and then clicking on the Flash tab.

The Flash Properties Panel

Step 3: Content to be Snapped

We need some content in the Flash file to check if the snapshot tool is working properly. We’re going to create some circles and place them randomly around the stage. Create a new Document Class called Circles.as and add the following code. Remember to link the Class to the Flash file by writing Circles in the Class field in the the Properties Panel [...]

Read more: Quick Tip: Creating a Snapshot Tool in Flash

Sunday, December 12, 2010

Story as evolutionary success or failure lessons

Story as evolutionary success or failure lessons:
Idle thoughts for a rainy December evening.

Viral player stories.  When you create games with deep systems, player run into amazing, emergent scenarios on a regular basis.  From these moments of player experience grow myths and legends.  Players tell them.  Press repeats them. Your game goes viral without requiring any of the whirring, queasy machinations of your local social network dealer.

Why does this occur?  It happens without prompting.  It requires no points, no bribes.  It is as if, after the right experience, the urge to tell stories bubbles up innately from inside even the least imaginative human.

A story, at an evolutionary level, is a lesson in success or failure intended to improve the survival rate of the tribe.  This is why we create them.  This is why we share them.  This is why we consume them.  Like play, story (even fiction) serves a function. Good stories were at one point a matter of life, death and reproduction. Humans have a nose for truths and when we spot them amidst the maelstrom of daily experience, we instinctively share them.

When we, as game designers, create meaningful systems whose depths are only revealed after a process of deep mastery, players instinctively extract stories from their experiences within these playscapes and pass them on to their friends and family. "When I kicked the soccer ball, my foot slide on the wet grass and I heard a distant sickening crunch in my knee." To experience a unique lesson that you've learned in your bones after a thousand trials is to hold a treasure.  And being human, we can't help but share. Over and over and over again [...]

Story as evolutionary success or failure lessons

Friday, December 10, 2010

flKinect: Socket server + AS3 library for Microsoft Kinect

flKinect: Socket server + AS3 library for Microsoft Kinect: "

Well… Now I may just have to get myself a Microsoft Kinect! I saw on Saqoosha’s blog that he was playing around with this and thought I would post this here. Koji Kimura wrote a Cocoa application to allow communication between the Microsoft Kinect and Flash. It looks amazing and opens up a whole new world of possibilities and it looks like the AS3 API is also very easy to use!

More info and downloads on Koji’s site.

As you may have guessed it is Mac only. If you know of any similar projects for Windows or Linux don’t hesitate to leave a comment below!

Update: Here’s another AS3 library + socket server app for Mac.

"

Master HTML Formatted Text in Flash

Master HTML Formatted Text in Flash:

We’re going to look at how to display HTML-formatted text loaded from XML, styled from an external CSS stylesheet with fonts loaded at runtime. We’ll also master inline image placement via the HTML <img> embed tag, and adding custom events to HTML text links.


Step 1: Why Use HTML-Formatted Text and External Assets?

It is certainly easy to keep all assets directly in the Flash source file itself, and sometimes that may be the best solution. However, there are some good reasons to keep as much content separate from your Flash document as possible, or even to keep your Flash source solely composed solely of ActionScript.

  1. Your SWF will load faster. Keeping the content separate from the Flash file allows you to load only the assets you need at runtime, thus delivering your content faster.
  2. Updates are easier. Instead of requiring a Flash developer to crack open the .fla and republish, all that is necessary is a simple edit to the html or css.
  3. Multiple applications. The external content is available to use for other applications, such as for creating an HTML5 version of the site for the iPad.
  4. OOP. Best of all, keeping the content separate from the delivery application is good object-oriented programming. Methods like this are the building blocks for developing systems, templates and components for re-use and rapid development.
[...] Readmore: Master HTML Formatted Text in Flash

Thursday, December 9, 2010

Create a Resizable AS3 ToolTip with OOP

Create a Resizable AS3 ToolTip with OOP:

In this tutorial we will create a ToolTip that automatically resizes itself. Our ToolTip will update its contents according to its position on stage, so that they are always visible. As part of this task, we’ll also create our own code to handle 9-slice scaling.


Preview

Let’s first take a quick look at our tooltip in action:


Step 1: Set Up FLA file

Let’s begin by creating a new folder called “ToolTip”. Inside the ToolTip folder, create an ActionScript 3.0 FLA.


Step 2: Creating the DisplayOjects (Sprites):

Now, create a rounded square of 150x77px with the following properties [...]

Read more: Create a Resizable AS3 ToolTip with OOP

Official Flash GAMM Kyiv 2010 review

Official Flash GAMM Kyiv 2010 review:

The fifth conference of flash games developers and publishers Flash GAMM Kyiv 2010 was held on December 4-5 in Kyiv.

We keep on growing and beating new records! This time the conference welcomed over 400 visitors from different countries.

The event took place in KyivExpoPlaza exhibition center with 2 spacious session halls, 2 sponsors halls for business negotiations, a meeting room for gold sponsors and a large coffee-break zone.

The conference program grew as well. During two days of the event we had 20 lectures (5 of them in English), a Workshop by i-Jet Media, a master class by AlternativaPlatform, another master class by Wacom, two round table discussions, a game-lynch and flash game contest award ceremony.

We would like to express our gratitude to all the speakers for sharing their valuable experience and significant figures.

At the end of the first conference day the participant were taken to the official After-beer-party sponsored byWheemplay. Though the room didn’t appear enough for all the willing, and free beer went off quite quickly, the atmosphere was really warm and friendly, and flash discussions dragged on till the morning. We would also like to thank Alternativa for supplying the party with extra beer [...]

Read more: Official Flash GAMM Kyiv 2010 review

Wednesday, December 8, 2010

New Tutorial Introducing the StageVideo API

New Tutorial Introducing the StageVideo API:

I just uploaded a new tutorial that introduces the new StageVideo API that is a part of Flash Player 10.2. This API dramatically improves the performance of your video as it is full GPU-accelerated. This tutorial goes over the API and also how to provide a fallback to regular video.

How a Flash bug breaks the professional software-release process

How a Flash bug breaks the professional software-release process: This article 1) describes how a Flash bug breaks the professional software-release process, and 2) entreats Adobe to fix said bug. THE BUG: When a linked class or the document class resides in a .swc file, the Flash authoring tool can't find it, and generates an error. At MegaPhone Labs, we separate our applications into two parts: the engine .swf (core logic) and the skin .swf (display). We create the [...]

Read more: How a Flash bug breaks the professional software-release process

Tuesday, December 7, 2010

Transform Tool 2 Updates

Transform Tool 2 Updates: "The new revision of the Transform Tool is still a work in progress. The tool is still in beta but now updates - including new source code - will be made available through a new tutorial page. Feel free to contact me with comments or suggestions.I can't say that a lot of progress will be quickly, especially since the holidays are arriving, but I wanted to make sure what I had was made available publicly."

Custom Classes for Playing Cards in ActionScript 3

Custom Classes for Playing Cards in ActionScript 3: "A preview of AS3 classes under development at Flash and Math. We show an example where a deck is shuffled and a hand of five cards is dealt with a nice flipping motion of each card. Complete source code available for download."

Monday, December 6, 2010

P2P in Desktop, Mobile, and Tablet Flex Apps

P2P in Desktop, Mobile, and Tablet Flex Apps:

Using the open source Flex SDK developers can easily build desktop, mobile, and tablet applications which utilize Peer to Peer (P2P) communication. I’ve created a video that walks through demos and code illustrating how to use the P2P APIs in Adobe AIR applications. Check it out:

Grab the code for the demos in the video from github:

Just as the video shows, it’s incredibly easy to use the P2P APIs. Here is a quick walk through. First create a new NetConnection that is connected to “rtmfp:” like so:

localNc = new NetConnection();
localNc.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
localNc.connect("rtmfp:");

In the netStatus event listener wait for the “NetConnection.Connect.Success” event and then setup the NetGroup [...]

Read More: P2P in Desktop, Mobile, and Tablet Flex Apps

Sunday, December 5, 2010

ActionScript 3.0 Interface: What are they good for?

ActionScript 3.0 Interface: What are they good for?: "Let’s Be Humble Design Patterns were founded in the context of OOPSLA (Object-Oriented Programming, Systems, Languages & Applications) gatherings sponsored by the ACM (Association for Computing Machinery) and attended by both academic and industry programmers. These are smart folks in the world of computing, but as I’ve mentioned on other occasions, they are far less arrogant [...]

Steambirds: Survival: Goodbye Handcrafted Levels

Steambirds: Survival: Goodbye Handcrafted Levels:

Steambirds: Survival, the sequel to our original steampunk airplane strategy game was just released today.   You can go play it right now at Steambirds.com.

Steambirds: Survival takes place on a grim fall morning at the start of the Battle of London.  The British forces are taken by surprise as thousands of Axis steam-planes descend upon the doomed city.  Outnumbered and outgunned, your heroic mission is to delay the invaders long enough that a handful of civilians might escape the genocidal gas attacks.  You have one plane.  How long can you last?

David has a great post about how we integrated microtransactions, but today I wanted to focus on a couple of design lessons that came up while building Steambirds: Survivial.
  • Removing handcraft levels as a method of finding deeper fun
  • Create game modes, not levels 
  • Corollary: Focusing on static levels decreases the depth of your game.

Find deeper fun by killing levels

Create game modes, not levels

Static levels decreases the depth of your game

[...]
Read more: Steambirds: Survival: Goodbye Handcrafted Levels

Saturday, December 4, 2010

ActionScript 3.0 Saturated Abstract Factory 2: What’s Wrong with Inheritance?

ActionScript 3.0 Saturated Abstract Factory 2: What’s Wrong with Inheritance?: "strong>Doing Composition The essence of the Abstract Factory Design Pattern is to create compositions for the Client. In the class diagram shown in Part I of the Saturated Abstract Factory series, the Client looks like a juggler pulling in different parts that are composed into a functioning component. (”Components” in this context are objects created using [...]

How to print in AS3

How to print in AS3: "In this short tutorial we will see how we can print the content of our swf files using the PrintJob class with actionscript 3."

Real Software Engineering does it work ?

Real Software Engineering does it work ?: "

I am a self taught developer and I am proud of that :)

My primary education is within electronic enginering and I have always had the impression that this gave me a advantage compared to the
people with a formal education in software development.

So when I watched the presentation “Real Software Engineering” by Glenn Vanderburg I got my suspicions confirmed.
Watch the entire presentation here:
http://www.softdevtube.com/2010/11/29/real-software-engineering/

"

Blender to ActionScript Exporter on Google Code

Blender to ActionScript Exporter on Google Code: "

There have been requests to put the Blender to ActionScript exporter on Google Code.
I’ve created this page: http://code.google.com/p/blender-as-exporter/

If you want to make any contributions to make the plugin better then give me a shout!

"

Flash Player 10.2 With FlashDevelop (and a quick Cursor Manager)

Flash Player 10.2 With FlashDevelop (and a quick Cursor Manager): "For that large population of you out there using FlashDevelop for pure AS3 development, here’s a quick overview on how to start publishing to the beta version of Flash Player 10.2: Install the beta player into the browser of your choice (i.e. Chrome). Download the most recent build of the Flex SDK (4.5.0.18623 at the [...]"