幫一個朋友解決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
萬連文 閱讀(4562)
評論(5) 編輯 收藏 引用 所屬分類:
亂七八糟