自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

實現(xiàn)QT與Flash交互操作

移動開發(fā)
對于實現(xiàn)QT與Flash交互,是很多人都比較頭疼的問題,在學習Action Script過程中,你有沒有遇到這種問題。QT中有一個控件叫QAxWidget,先加載一個.swf文件,具體操作如下。

要實現(xiàn)QTFlash交互操作,人家Flash不支持64位,所以,你的代碼也只能是32位的。

首先是QT調(diào)用Flash中的函數(shù):

QT中有一個控件叫QAxWidget,加載一個.swf文件代碼如下:

  1. QAxWidget flash(this,NULL);   
  2. flash.setControl(QString::fromUtf8("{d27cdb6e-ae6d-11cf-96b8-444553540000}"));   
  3. flash.dynamicCall("LoadMovie(long,string)",0,”E:// First.swf ”);  

現(xiàn)在是如何調(diào)用Flash中方法的問題,首先要用Flash中的ExternalInterface.addCall方法來添加與外界交互的接入點:

  1. ExternalInterface.addCallback("drawCircleExternal",drawCircle);   

然后是如何在QT中調(diào)用這個函數(shù),在我的AS3代碼中,drawCircle需要一個int 型的參數(shù),所以調(diào)用代碼如下:

  1. QString str;   
  2. QTextStream(&str)<<""   
  3.  
  4.                          <<""   
  5.  
  6.                          <<""<<<""   
  7.  
  8.                          <<""   
  9.  
  10.                          <<"";   
  11.  
  12. flash.dynamicCall("CallFunction(string)",str);  

其中returntype是必須是xml,而且drawCircle的返回值無法得到,不知道為什么,不過這也不是很重要。

現(xiàn)在是如何在AS3 中調(diào)用C++的問題,這仍然是通過AS3中的ExternalInterface這個類中的call方法來實現(xiàn)。

AS3的代碼如下:

  1. ExternalInterface.call("calcu","bbcc");  

其中calcu是外部函數(shù)名,“bbcc”是參數(shù)。

當在AS3中執(zhí)行這段代碼里,QAxWidget會產(chǎn)生個signal,形式如下

  1. FlashCall(QString)  

而其中QString的內(nèi)容如下

  1. bbcc  

因此,在QT中要通過AS3調(diào)用C++,必須寫一個slot并將其與上述的signal聯(lián)系起來,具體代碼如下:

  1. connect(&flash,SIGNAL(FlashCall(QString)),this,SLOT(calcu(const QString&)));  

將具體要被調(diào)用的代碼放入calcu中即可,當然這里slot名不一定要與AS3中的函數(shù)名一樣,可以隨意更改。

【編輯推薦】

解析 QT 靜態(tài)庫和動態(tài)庫

在Qt中如何寫控制臺程序

交互設計領域的包豪斯運動

基于Qt Web瀏覽器設計與實現(xiàn)

淺談自動化測試工具 QTP腳本的重用

開源軟件是基于JVM 平臺之Qt移植QtJambi

責任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-13 10:44:44

Qt Flash

2011-08-29 14:10:03

QtWebkitFlash

2011-06-23 11:16:39

Qt Excel

2009-12-07 18:42:55

PHP與Javascr

2011-10-08 11:05:59

HTML 5

2011-08-04 09:47:33

iOS Objective- JavaScript

2011-06-27 11:08:37

Qt 串口 通信

2011-06-28 16:40:17

Qt Widget 圖片

2011-06-09 18:05:00

QT MySql

2011-05-04 09:05:39

Flash

2010-07-27 10:54:22

Flex

2010-08-12 12:55:02

FlexFlash

2011-07-05 14:46:34

2011-07-02 14:11:46

Qt Gtk Ubuntu

2011-06-10 17:10:32

Qt GUI 瀏覽器

2009-08-14 10:11:47

C#允許服務與桌面交互

2010-08-10 09:40:23

Flex與瀏覽器交互

2014-07-29 11:16:07

2011-06-14 18:37:50

Flash

2011-07-04 17:18:23

Qt SQLite 數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號