How the Flash Search Player works

Jim Corbett, Flash Player Engineer at Adobe, did a talk at MAX San Francisco with some good information on how the Flash Search Player works.
45min video

What I got out of it:

  • Adobe has built a headless flash player that runs through a
    swf file really fast.
  • Google has build a virtual user that communicates with the
    headless flash player, the user deals with the logic to make sure it
    clicks all the buttons and decides what to index.
  • All text fields visible on the display list can be accessed
    even dynamic ones
  • Images of text are not found – best way to hide
    text for Easter eggs
  • If you load data via external file i.e. xml and populate
    text boxes, it can be accessed via the headless flash player (Google
    are not yet passing this file back to the headless player, but they do
    index the external file)
  • No sockets, no video
  • A snap shot of the state can be taken (this is at the
    Google virtual users request)
  • No external interface
  • No swfAddress deep linking
  • Flashvars are ok as the virtual user passes the player the
    complete url
  • No accessibility text yet

Data visualisation with RaVis in Flex

RaVis (Relational Analysis Components) is part of the BirdEye “a community project to advance the design and development of a comprehensive open source information visualization and visual analytics library for Adobe Flex.”

The RaVis components all you to create interactive data visualisation interfaces for the analysis of relational data sets such as social networks, organisation trees, navigation systems and anything else you can think of.

To create this example I followed an article I beta tested for the Flash&Flex Developer’s Magazine.
Once you get to grips with setting up the project and components it’s really easy, this was my first proper dive into flex and I found it to be quite manageable.

The data for this example and the ones on the project website are loaded in form an xml file and are very basic, for example to make 2 nodes and connect them takes as little as this code:

// the first node
//<node id=”1″ name=”Food” desc=”Stuff you can eat” nodecolor=”0x333333″ nodesize=”50″></node>
// the second node
//<node id=”2″ name=”Dairy Products” desc=”milk and stuff ” nodecolor=”0xFFE76B” nodesize=”15″></node>
// the connection between them
//<edge fromid=”1″ toid=”2″ edgelabel=”is a group of” color=”0x000000″></edge>
More data is revealed as you drill down – double click on the ‘cow’ node.

[flash w=600 h=600 mode=1]


download source (2.4mb zip)

The source contains all the folders for this project – it also includes the libRaVis.swc in the libs folder.
some comments on code