播放Flash动画需要引入QAxWidget类,依赖库文件有QAxContainer.lib,QAxServer.lib。
在Qt中应用QAxWidget类时,还不能忘记你电脑需要装FlashActiveX插件,切记,Flash不支持64位,所以,代码也只能是32位的。
QAxContainer.lib和QAxServer.lib这两个库没有没关系,VS中可以勾选Qt的类选项,然后引用Qt的QAxWidget类的头文件即可。
当然也可以直接引用这个两个库,但一定要正确引用,不然编译会出现无法解析外部符号的错误。
下面来说说代码部分。
QTextCodec *codec = QTextCodec::codecForName("GB2312"); //文本为GB2312编码
QTextCodec::setCodecForLocale(codec); //设置本地编码
QAxWidget *flash = new QAxWidget(parent); //QAxWidget使用的是ActiveX插件
flash->resize(800, 600); //设置该控件的初始大小
flash->setControl(QString::fromUtf8("{d27cdb6e-ae6d-11cf-96b8-444553540000}")); //设定控制器
flash->dynamicCall("LoadMovie(long,string)", 0, "D:\\flashTest\\flash.tset.swf"); //加载flash文件
flash->setWindowFlags(Qt::FramelessWindowHint); //去除边框
flash->show();
控制器是你本机安装Flash插件的注册表
关于Qt和Flash交互,需要用到Qt的connect函数,同信号与槽的机制一样,接收到Flash某个信号去实现某个槽函数的功能。
Flash动画的播放效果: