flex 之JavaScript 和ActionScript互通

阅读更多
注:原创作品,分享以供交流学习,转载请注明出处。

    JavaScript和flex互通全是通过ExternalInterface 这个接口。
    ExternalInterface 类是外部 API,这是一个在 ActionScript 和 Flash Player 容器之间实现直接通信的应用程序编程接口,例如,包含 JavaScript 的 HTML 页。Adobe 建议使用 ExternalInterface 实现 JavaScript 与 ActionScript 之间的所有通信。
在 Flash Player 中,可以使用 HTML 页中的 JavaScript 来调用 ActionScript 函数。ActionScript 函数可以返回一个值,JavaScript 会立即接收它作为该调用的返回值。

总结:
1,JavaScript要调用flex中的ActionScript,需要flex中实现注册好被JavaScript调用的ActionScript函数,例如:
//第一步:在mxml应用程序启动后执行:把js可以调用的ActionScript 函数注册
public function initApp():void 
{   
//把flexHelloWorld 函数注册成名为flexHelloWorld,可以供js调用
				ExternalInterface.addCallback("flexHelloWorld", flexHelloWorld);   
}


2,js调用flex的方式:
function callFlexFunction() 
{   
document.getElementById("supanccy").flexHelloWorld("Hello", "world");    
}  


3,flex中调用javascript函数的方式:
//mxml应用程序上输入框内容改变事件处理函数
protected function userName_changeHandler(event:TextOperationEvent):void
{
//在flex中调用页面中JavaScript的函数
var s:String = ExternalInterface.call("helloJs", "chenchaoyang");   
}



实例:
flex程序:


	
		
	
	
	
		
	
	
	



html页面:


	
    
                 
        
        
		
        
        
		    
        
		
        
    
    

        

To view this page ensure that Adobe Flash Player version 10.0.0 or greater is installed.


你可能感兴趣的:(actionscript,javascript)