Why doesn’t System.Capabilities class have browser property?

Can someone explain why Adobe put in the feature:

trace(Capabilities.os); // gets the operating system

and not something like

trace(Capabilities.browser); // gets the browser... this property doesn't exist unfortunately...

On a game project I’m working on, the game uses key combinations such as CTRL+Z and CTRL+Y for certain features. Unfortunately, combo keys using CTRL key don’t work in Internet Explorer (but they do work in other browsers). What I want to do is detect if the user has IE, then change the key combinations to SHIFT+Z and SHIFT+Y. The only way to determine the browser is by using a server side language or Javascript to pass in the browser into Flash… grr….

Does anyone know if there’s a way to use ExternalInterface to send the keys? I don’t want to depend on Javascript being on a page or specific Flash vars be sent to the user… but I may have to do so.

Update 10/17/08:

I found a way to detect for IE.

Capabilities.playerType; //Returns ActiveX if in IE. 

A string that indicates the type of player. This property can have one of the following values:

  • "StandAlone" for the Flash StandAlone Player
  • "External" for the Flash Player version used by the external player, or test movie mode..
  • "PlugIn" for the Flash Player browser plug-in
  • "ActiveX" for the Flash Player ActiveX Control used by Microsoft Internet Explorer

2 thoughts on “Why doesn’t System.Capabilities class have browser property?”

Leave a Reply

Your email address will not be published. Required fields are marked *