Et bien, c'est possible. Adobe a décidément tout prévu !

Voici ce que cela donne en video :

Texte de remplacement


Et voici un exemple basique:

La page html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>test</title>
<script type="text/javascript">
 
function Flex2JS(message) {
alert('JS a bien reçu le message depuis Flex\nVous avez rentré : '+message);
}
 
function callFlex(){
	if(document.getElementById('ti').value != ''){
	JS2Flex(document.getElementById('ti').value)
	} else {
	alert('Vous devez rentrer quelque chose !');
	}
}
    </script>
<style type="text/css">
<!--
.Style1 {
	color: #996600;
	font-weight: bold;
	font-family: Verdana, Arial, Helvetica, sans-serif;
}
-->
</style>
</head>
  <body>
   <p align="center" class="Style1">Page HTML</p>
   <p>
     <input id="ti"/>
     <input type="submit" id="bt" value="Envoyer" onClick="callFlex()"/>
   </p>
</body>
</html>

Le code pour Flex

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" 
	layout="absolute" backgroundImage="@Embed(source='background.jpg')"
	creationComplete="init()" width="500" height="350" >   
<mx:Script>
<![CDATA[
	import mx.controls.Alert;
	import flash.html.JavaScriptObject;
	    
	private var request:URLRequest = new URLRequest;
	     
	private function init():void {
        html.setFocus();
        html.addEventListener(Event.COMPLETE,onComplete);
		var urlReq:URLRequest = new URLRequest("http://localhost/AIR&JS.html");
		html.htmlControl.load(urlReq); 
	}
 
	private  function onComplete(e:Event):void
	{
		html.htmlControl.window.JS2Flex = JS2Flex;    
	}
	
	private function JS2Flex(message:String):void {
   		Alert.show("Flex à bien reçu l'event depuis JS\nVous avez rentré : "+message+"","Infos");
	}
	 
	private function Flex2JS(message:String):void {
   		if(message != ''){
   			html.htmlControl.window.Flex2JS(message);
   		}else{
   			Alert.show("Vous devez rentrer quelque chose !","Erreur");
   		}
	} 
]]>
</mx:Script>
<mx:HTML id="html" top="88" bottom="132" left="10" right="10"></mx:HTML>
	<mx:TextInput id="ti" bottom="42" right="197" left="141"/>
	<mx:Button label="Envoyer à JS" click="Flex2JS(ti.text)" bottom="42" right="88"/>
	<mx:Label y="22" text="Communication entre AIR et JS" fontFamily="Verdana" color="#BCD947" fontWeight="bold" fontSize="18" horizontalCenter="0"/>
	<mx:Label text="Texte à envoyer à JS" left="10" bottom="44"/>  
</mx:WindowedApplication>

Et voilà... 8-)