import flash .external.ExternalInterface;
这是一个静态类,主要用两个方法:
-
- ExternalInterface.addCallback(给Javascript的接口,AS函数位置,AS函数名)
- ExternalInterface.call(Javascript函数名,传值)
ExternalInterface.addCallback("browse",this,upBrowse);
其中borwse是 javascript 可以调用flash 的接口,upBrowse是AS的函数
ExternalInterface.call("upAllComplete",upCount);
这个是AS调用Javascript的接口
其中upAllComplete是Javascript的函数,upCount是需要传递的参数
废话少说,例子上。
这个是AS调JS
AS代码:
-
- ExternalInterface.call("upAllComplete",upCount);
-
- function upAllComplete(upData){
- //upData是AS中的upCount传过来的值,可以是对象,数组,字符串 ,数字
- alert(upData);
- }
JS代码:
-
- var movieName = "testcommand";
- //testcommand是HTML中Object的id和name,name和id要一样,这个是考虑到浏览器兼容性
- function thisMovie() {
- if (navigator.appName.indexOf ("Microsoft") !=-1) {
- return window[movieName];
- } else {
- return document[movieName];
- }
- }
-
- thisMovie().browse(toSwfData);
- //browse是swf函数upBrowse的映射名称
-
- function upBrowse(jsData){
- trace(jsData);
- }
- ExternalInterface.addCallback("browse",this,upBrowse);
- //映射upBrowse这个函数为接口browse
这个AS版本可以支持到Flash player 7(貌似),不过flash本身在浏览器就提供一些接口,诸如:gotoAndPlay(),play(),stop()等等,这个用到的时候可以上网查一下。