flashActionScript提供的外部访问接口,用于Flash虚拟机与ActiveX容器(ActiveXcontainer))应用程序或容器应用程序(Containerapplication)通信。接口定义addCallback()及call()两个方法及一个属性available。
externalinterface用法:
因为在Flash帮助中已详细说明了Flash与JavaScript容器之间的通信过程,此处不赘述。现以在含有Flash控件的VS(VC)应用程序为例说明:
容器访问Flash控件:
A:flash代码:
//导入
importflash.external.ExternalInterface;
//回调声明
if(flash.external.ExternalInterface.available){
ExternalInterface.addCallback("flashDoSth",null,flashDoSth);
}
//回调定义
functionflashDoSth(param:TYPE):TYPE{
//dosthhere;
//returnsth;
}
B:VS(VC)代码:
在需要FLASH执行上述定义的函数代码段,写入
1
m_flash.CallFunction(strXML);
//说明:
m_flash即Flash控件变量;
strXML即为容器传向Flash的数据,为XML类型字符串,在JS网页中,数据直接传输使用,但在控件容器如VS(VC)中,容器与控件数据传方式为:数据(VS/VC)----XML数据---数据(Flash)。
externalinterface一般的组织方式:
容器向Flash传递数据为字符串"STR",strXML应该写为:
1
"<invokename="flashDoSth"returntype="xml"><arguments><string>STR</string></arguments></invoke>"
容器向Flash传递数据为数字222,strXML应该写为:
1
"<invokename="flashDoSth"returntype="xml"><arguments><number>222</number></arguments></invoke>"
容器向Flash传递数据为布尔,strXML应该写为(以下方式之一):
1
2
"<invokename="flashDoSth"returntype="xml"><arguments><true/></arguments></invoke>"
"<invokename="flashDoSth"returntype="xml"><arguments><false/></arguments></invoke>"
总之,externalinterface给大家简单的介绍了一些,希望大家多看看。