So the new Flash Player Incubator program is really quite exciting seeing the Flash Player while it’s still in development and before it reaches beta. Now a lot of the attention so far on the incubator builds of Flash Player have been on Molehill, the new 3D API but I’m also curious about what else is in there.
Poking around in the docs one of the interesting things that I found is mention of a Flash Player 10.3 and AIR 2.7. So while these incubator builds are a sort of alpha of Flash Player 11, there’s going to be another Flash Player and AIR release between now and Flash Player 11 & AIR 3.0.
Another interesting thing is the classes in the flash.hid directory. HID stands for Human Interface Device, which is likely the game controller support Adobe has been talking about. It’s not working just yet, but you can see the devices Adobe has been playing around with, some of them really quite different and strange (like a Magic Carpet Simulator device, to VR gear). Some of them with references to DVDs and VCRs, I wonder if it has to do with Flash being on tvs now. Also those following the PlayBook development might realize it’s OS is called QNX. QNX is a company that RIM bought out and still provides it’s OS for everything from cars to equipment on NASA’s Space Shuttle. With QNX running Flash it running on cars, I wonder if that’s where things like variables referring to car alarms comes from.
So I used NotePad++ to do a complete search through the files to find any reference to Flash Player 10.3 & 11 and AIR 2.7 & 3.0. From that search I grabbed all the HTML code and dumped it into a document and have copied and pasted it bellow. It’s not formatted the best, but it’s not something I wanted to spend too much time on and it links to where I’ve uploaded the docs on matthewfabb.com, so you can see how it’s supposed to look like or just to get more details on a class without having to download and unzip the docs yourself.
Here’s how it’s set up, I’ve listed classes bellow with new methods, properties and constants all listed underneath. You can tell which classes are brand new by the fact that I linked to them. Anything not taken from the docs bellow I tried to highlight the fact by putting it italics. I start with Flash Player 10.3 & AIR 2.7, then move into Flash Player 11 & AIR 3.0, then finally Flash Player 12 (??) & content without mention of any version of Flash. Remember I’m not including any of the 3D classes here and also it’s quite possible that I missed some of the new stuff in putting it together so quickly. If you come across that let me know and I’ll update this post.
NOTE:This is based off of the docs from the February 27, 2011. There’s likely other incubators builds of the Flash Player in the works and at that point all of this is likely to be quite dated.Also realize that Adobe has clearly pointed out again that a number of these APIs are still experimental and anything could be pulled out or renamed.So don’t go building something new expecting everything to make the final release.
Flash Player 10.3 & AIR 2.7
enhancedOptions : MicrophoneEnhancedOptions
Controls enhanced microphone options.
getEnhancedMicrophone(index:int = -1):Microphone
[static] Returns a reference to an enhanced Microphone object.
FULL_DUPLEX : String = "fullDuplex"
[static] Acoustic echo cancellation operates in full duplex mode.
HALF_DUPLEX : String = "halfDuplex"
[static] Acoustic echo cancellation operates in half duplex mode, which represents a simpler processing when compared to full duplex mode.
HEADSET : String = "headset"
[static] Headset in use.
OFF : String = "off"
[static] All enhanced audio functionality is turned off.
SPEAKER_MUTE : String = "speakerMute"
[static] Use this mode when the speaker is muted.
The MicrophoneEnhancedOptions class provides configuration options for enhanced audio.
autoGain : Boolean
Enable auto-gain control.
echoPath : int
Specify the echo path (in millisecond) used for echo cancellation.
isVoiceDetected : int
[read-only] Returns whether voice was detected for Microphone input.
mode : String
Controls enhanced microphone mode.
nonLinearProcessing : Boolean
Enable non-linear processing.
The NetMonitor class has two functionality. It contains a single method listStreams(), that returns the vector of NetStream objects. Second, NetMonitor class dispatches NetMonitorEvent of NetMonitorEvent.NET_STREAM_CREATE type whenever a new NetStream object is created.
Retrieve all NetStream objects belonging to the same security context.
Dispatched when a new NetStream object is created.
isLive : Boolean
[read-only] Returns whether the media being played is recorded or live.
metaData : Object
[read-only]Retrieve last meta data object associated with media being played.
resourceName : String
[read-only] Return resource name used when NetStream.play() was called.
uri : String
[read-only] Return the URI used when NetConnection.connect() was called.
xmpData : Object
[read-only] Retrieve last XMP data object associated with media being played.
NetMonitorEvent object is dispatched whenever a new NetStream object is created. There is only one type of event: NetMonitorEvent.NET_STREAM_CREATE.
See class for properties, methods and constants
FLASH11 : uint = 11
[static] SWF file format version 11.0. – Runtime Versions: Flash Player 10.2
FLASH12 : uint = 12
[static] SWF file format version 12.0. – Runtime Versions: Flash Player 10.3
Flash Player 11 & AIR 3.0
TEXT_INTERACTION_MODE_CHANGE : String = "textInteractionModeChange"
[static] The Event.TEXT_INTERACTION_MODE_CHANGE constant defines the value of the type property of a interaction mode event object.
This is class is way too big to list all of the many, many constants in this class. Check the class definition for the full list of HID (Human Interface Device) that Adobe is looking into. I just pulled out some of the more interesting ones:
HIDUsage_Button_1 (up to button_4)
controlCount : int
[read-only] returns the number of controls available
name : String
[read-only] returns the name of the device
usage : int
[read-only] property containing the usage
usagePage : int
[read-only] property containing the usage page
device : HIDDevice
[read-only] returns the device that owns this control
hasCenter : Boolean
[read-only] property is true if the control has a center position (joystick for example)
hasNullState : Boolean
[read-only] property is true if control has a null state
input : Boolean
[read-only] property is true if the control is a input control
linear : Boolean
[read-only] property is true if the control linearly change from min to max
max : Number
property containing ther maximum value of a control
min : Number
property containing the minimum value of a control
relative : Boolean
[read-only] property is true if the control value returns a relative change since last event
type : int
[read-only] property containing type of control
units : Number
[read-only] property containing the unit of value
usage : int
[read-only] property containing control usage
usagePage : int
[read-only] property containing control usage page
value : Number
property containing the value of the control.
deviceCount : int
[static] [read-only] returns the number of devices currently attached
focused : Boolean
[static] [read-only] property containing the focus state of the manager
names : Array
[static] [read-only] retruns the list of devices names
Copies a Vector3D object into specific column of the calling Matrix3D object.
Copies specific column of the calling Matrix object into the Vector3D object.
Copies all of the matrix data from the source Point object into the calling Matrix object.
Copies a Vector3D object into specific row of the calling Matrix object.
Copies specific row of the calling Matrix object into the Vector3D object.
setTo(aa:Number, ba:Number, ca:Number, da:Number, txa:Number, tya:Number):void
Sets the members of Matrix to the specified values
Matrix3D (all of Matrix’s methods above plus)
copyRawDataFrom(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Copies all of the vector data from the source vector object into the calling Matrix3D object.
copyRawDataTo(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Copies all of the matrix data from the calling Matrix3D object into the provided vector
Copies all of the point data from the source Point object into the calling Point object.
Sets the members of Point to the specified values
Copies all of rectangle data from the source Rectangle object into the calling Rectangle object.
setTo(xa:Number, ya:Number, widtha:Number, heighta:Number):voidSets the members of Rectangle to the specified values
load MP3 sound data from a ByteArray object into a Sound object.
loadPCMFromByteArray(bytes:ByteArray, samples:uint, format:String = "float", stereo:Boolean = true, sampleRate:Number = 44100.0):void
load PCM 32-bit floating point sound data from a ByteArray object into a Sound object.
textInteractionMode : String
[read-only] The interaction mode property, Default value is TextInteractionMode.NORMAL.
Flash Player dispatches the textInteractionModeChange event when a user changes the interaction mode of a text field.
Flash Player 12
Strange labeling here, which I’m guessing is the Flash Team’s way of pushing elements out of a build. So I’m guessing these functions were pulled in last minute:
Graphics & GraphicsPath classes both have:
cubicCurveTo(controlX1:Number, controlY1:Number, controlX2:Number, controlY2:Number, anchorX:Number, anchorY:Number):void
Adds a new "cubicCurveTo" command to the commands vector and new coordinates to the data vector.
Flash Player ???
Now the following is that are not marked what runtime version they are in. I imagine these are the most experimental of the APIs. Unfortunately, there’s nothing marking them so that they are hard to find via NotePad++ or any other program using just search. To find them there would require to write or script to compare the docs to an older version of the docs. The one property that I found added to Socket was only because Adobe’s Thibault Imbert pointed it out on Twitter.