AS3与JavaScript之间的通讯用ExternalInterface .
ExternalInterface 类是外部 API,这是一个在 ActionScript 和 Flash Player 容器之间实现直接通信的应用程序编程接口,例如,包含 JavaScript 的 HTML 页。 Adobe 建议使用 ExternalInterface 实现 JavaScript 与 ActionScript 之间的所有通信。
详细官方帮助见:http://help.adobe.com/zh_CN/AS3LCR/Flash_10.0/flash/external/ExternalInterface.html
网上摘下来的例子:
在html中嵌入swf有两种方式,一种是用Flash CS3直接发布,还有一种就是大家都熟悉的swfobject。这里我没什么挑剔的,能解决问题就行。
这个例子是flash调用js函数funcWaitingForFlash,执行funcWaitingForFlash函数时再回调flash的func,仅供参考。
flash as3:
- package
- {
- import flash.display.*;
- import flash.external.*;
- public class Main extends Sprite
- {
- public function Main():void
- {
- // …
- ExternalInterface.addCallback(‘flashFunc‘, func);
- ExternalInterface.call(‘funcWaitingForFlash‘);
- }
- private function func(str:String):void
- {
- // …
- }
- }
- }
js:
- function callFlashFunc(str)
- {
- var obj = thisMovie(‘flashas3js‘);
- // thisMovie函数在发布时会自动生成
- // 如果用swfobject则是
- // var obj = swfobject.getObjectById(”flashas3js”);
- if(obj){
- obj.flashFunc(str);
- }
- }
- function funcWaitingForFlash()
- {
- callFlashFunc(‘试试看‘);
- }