用Qt加载Flash
来源:互联网 发布:网络之间连接的桥梁 编辑:程序博客网 时间:2024/06/14 20:25
今日工作中需要处理用Qt嵌入Flash的做法,特此记录下来,有兴趣可以一起研究研究
Qt嵌入Flash的方法:
原理:使用QAxWidget 将Flash文件作为一个插件 加载到你的程序中来。然后通过QAxWidget的dynamicCall方法调用Flash的方法就可以了。
方法:
1. 新建Qt工程,在pro文件中引入axcontainer模块 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets axcontainer
2. a 在程序中创建一个QAxWidget, 对象,并进行注册。 b 通过QAxWidget的dynamicCall加载Flash
//QAxWidget *flash; flash = new QAxWidget(0,0); flash->resize(500,300); //设置控件的大小 flash->setControl(QString::fromUtf8("{d27cdb6e-ae6d-11cf-96b8-444553540000}")); //注册控件 //链接QAxWidget的信号 主要是错误处理 connect(flash,SIGNAL(FSCommand(QString,QString)),this,SLOT(flashAction(QString,QString))); connect(flash, SIGNAL(exception(int,QString,QString,QString)), this, SLOT(error(int,QString,QString,QString))); //加载SrcText.swf文件 flash->dynamicCall("LoadMovie(long,string)",0,"D:/Demo/flashTest/bin/SrcTest.swf"); //调用方法 QString str2 = flash->dynamicCall("TotalFrames" ).toString();//获得属性 flash->dynamicCall("FrameNum" , 200);//设置属性 flash->show();
注:setControl中的GUID不可改变。这个就是加载视频文件的GUID
3. 在Qt中调用Flash的函数
同样也是通过dynamicCall调用Flash的函数并可以传入参数。这里要介绍一下Flash提供的外部调用内部函数的方法CallFunction,
就是这个函数可以调用Flash写好的函数,他的参数是一个xml并且必须得是xml,感觉这个传参的方法不太好。。。
这个xml的格式为:
"<invoke name=\"getSteam\" returntype=\"xml\"> <arguments><string> argument1 </string><string> argument2 </string></arguments></invoke>"
上例子吧:
flash->dynamicCall("CallFunction(string)",<span style="font-family: Arial, Helvetica, sans-serif;">"<invoke name=\"getSteam\" returntype=\"xml\"> </span><span style="font-family: Arial, Helvetica, sans-serif;"><arguments><string> argument1</span><span style="font-family: Arial, Helvetica, sans-serif;"></string></arguments></invoke>"</span>);
这样就可以调用Flash中的方法了。
注:1 在调用Flash的函数的时候 不可在加载完Flash之后立马调用,因为刚加载完Flash不一定Flash就new出来了,
所以得等Flash初始化完全之后再调用。可以放到定时器中调用
2 xml格式注意编码问题。遇到调用不成功的时候编码多换换多试试。我就在这一步被坑过
1 0
- 用Qt加载Flash
- QT 中加载 Flash
- QT webkit 中加载flash文件
- 在Qt中如何加载flash
- linux环境下QT加载flash文件
- 动态加载加载FLASH.
- Qt实现播放Flash
- QT+flash注意事项
- Qt显示Flash文件
- qt 播放flash
- Qt实现播放Flash
- QT 播放 FLASH
- Qt Flash 播放
- flash加载图片代码
- flash加载html代码
- flash加载外部图片
- 动态制作加载flash
- Flash 动态加载字体
- 进击的大神之路
- 导航菜单背景切换效果
- Spring 实现数据库读写分离
- 使用VMware VSphere WebService SDK进行开发 (四)——获取集群(Cluster, ComputeResource)的相关信息
- SAS SATA SSD IDE硬盘介绍区别
- 用Qt加载Flash
- 正则表达式
- css选择器
- 开发中的编码问题
- WebRequestInterceptor中ModelMap为null
- iphone 设置 开发者 对应的中文翻译
- ”知原理“检验题目哈夫曼树
- 值得思考的定律
- 修改bug:通知ListView更新失败