现在的位置: 首页 > 综合 > 正文

调用JS函数

2013年04月18日 ⁄ 综合 ⁄ 共 1161字 ⁄ 字号 评论关闭

22.1. 调用JS函数

问题
在AS中调用一个JS函数

解决办法
使用 ExternalInterface.call( ).

讨论
使用 ExternalInterface.call( ) 方法来在AS中同步调用JS的函数。call() 方法要求至少一个参数,指定要调用的函数的名称:
ExternalInterface.call("changeTitle");

这个函数必须定义在HTML 页面中,使用相同的名称:

<script language="JavaScript">
    function changeTitle(title) {
        if(title == undefined) {
            title = "New Title";
        }
        window.title = title;
    }
</script>

如果JS函数接受参数,你可以在调用  call() 方法时传递附加的参数,例如,下面传递一个值给 changTitle()函数:

ExternalInterface.call("changeTitle", "ActionScript 3.0 Cookbook");

一旦 call()调用,JS函数返回的任何值会返回给AS。意思是你可以指定返回的值到一个变量。下面的AS指示可以怎么做:

var title:String = ExternalInterface.call("getTitle");

前面AS 调用的JS 函数看起来如下:

<script language="JavaScript">
    function getTitle(  ) {
        return window.title;
    }
</script>

ExternalInterface 可以在以下浏览器上工作:

Internet Explorer 5.0+ (Windows)

Netscape 8.0+ (Windows and Mac OS X)

Mozilla 1.7.5+ (Windows and Mac OS X)

Firefox 1.0+ (Windows and Mac OS X)

Safari 1.3+ (Mac OS X)

如果你需要支持一个ExternalInterface 不能工作的浏览器,你还是可以调用 JS 函数,无论如何,你必须使用 flash.net.navigateToURL() 函数。
navigateToURL() 函数是异步的,意思是它不会返回一个值。使用navigateToURL() 调用一个JS函数,你必须使用 flash.net.URLRequest 对像,有一个值 使用JS协议。下面的例子是调用JS的alert() 函数:
var request:URLRequest = new URLRequest("javascript:alert('example');");
navigateToURL(request); 

抱歉!评论已关闭.