帮一个朋友解决C++与flash交互问题,才发现,flash的通信机制做了一些修改了。
as2 as3脚本增强了flash与外界的交互方式,以前的fscommand机制现在似乎相形见绌了。当然似乎只能flash player9以上支持。
调用外界函数通过 ExternalInterface.call
外界调用as脚本通过 ExternalInterface.addCallback 增加一个连接点,回调as脚本(似乎as2比as3多一个参数??)
as调用外界函数由于都是符合as语法,所以调用ExternalInterface.call 无任何区别;主要是外界调用as脚本存在js和activex区别:
1、与js交互
flashShockWaveObj.FuncName(param1, param2, ..., param3)
flashShockWaveObj是flash控件对象
FuncName是addCallback 的第一个参数添加的调用函数
参数必须符合as脚本函数的参数
2、与activex交互
flashShockWaveObj.CallFunction("<invoke name=\"CheckMagicString\" returntype=\"xml\"><arguments><string> empty ?</string></arguments></invoke>")
参数必须以xml格式传递,name对应的值是函数名,returntype="xml"是固定的,<arguments>节点里面存放的是参数列表,所有参数以 <类型>值</类型> 形式存在。
注意:需要发布到flash player9以上版本才可以(我测试了6和9,6不行,9可以)。
posted on 2008-12-05 14:49
万连文 阅读(4555)
评论(5) 编辑 收藏 引用 所属分类:
乱七八糟