幫一個朋友解決C++與flash交互問題,才發(fā)現(xiàn),flash的通信機制做了一些修改了。
as2 as3腳本增強了flash與外界的交互方式,以前的fscommand機制現(xiàn)在似乎相形見絀了。當(dāng)然似乎只能flash player9以上支持。
調(diào)用外界函數(shù)通過 ExternalInterface.call
外界調(diào)用as腳本通過 ExternalInterface.addCallback 增加一個連接點,回調(diào)as腳本(似乎as2比as3多一個參數(shù)??)
as調(diào)用外界函數(shù)由于都是符合as語法,所以調(diào)用ExternalInterface.call 無任何區(qū)別;主要是外界調(diào)用as腳本存在js和activex區(qū)別:
1、與js交互
flashShockWaveObj.FuncName(param1, param2, ..., param3)
flashShockWaveObj是flash控件對象
FuncName是addCallback 的第一個參數(shù)添加的調(diào)用函數(shù)
參數(shù)必須符合as腳本函數(shù)的參數(shù)
2、與activex交互
flashShockWaveObj.CallFunction("<invoke name=\"CheckMagicString\" returntype=\"xml\"><arguments><string> empty ?</string></arguments></invoke>")
參數(shù)必須以xml格式傳遞,name對應(yīng)的值是函數(shù)名,returntype="xml"是固定的,<arguments>節(jié)點里面存放的是參數(shù)列表,所有參數(shù)以 <類型>值</類型> 形式存在。
注意:需要發(fā)布到flash player9以上版本才可以(我測試了6和9,6不行,9可以)。
posted on 2008-12-05 14:49
萬連文 閱讀(4568)
評論(5) 編輯 收藏 引用 所屬分類:
亂七八糟