读书人

VC 连续播放一个文件夹里所有的SWF

发布时间: 2012-01-31 21:28:41 作者: rapoo

VC 连续播放一个文件夹里所有的SWF文件,  200分相送!
步骤:菜单Component-> Import ActiveX Control
在ListBox中选择ShockwaveFlash 然后点击Install
一步步走下去,在最后选择Compie
在ActiveX中就有了Shockwave Flash控件了
在FormCreat事件写:
ShockwaveFlash1-> Movie= "d:\\bei\\index.swf ";
ShockwaveFlash1-> Play();


这样可以播放单个,但怎么播放多个, 试了很久都不行;

如果再加ShockwaveFlash1-> Movie= "d:\\bei\\in.swf ";

前面的不播放,只播放后面的


恳请写一个可以执行的代码, 如果可以达到效果,立刻送200分!


[解决办法]
http://tech.163.com/05/1008/14/1VI1OU8L00091589.html
希望这个对你有帮助
[解决办法]
首先建个string链表或是数组,将所有的文件路径保存下来。ShockwaveFlash1这个东西没用过,不过应该可以判断是否播放完吧,ShockwaveFlash1-> Play()是阻塞函数吗?如果是
for(int i=0;i <几个文件;++i)
{
ShockwaveFlash1-> Movie=string[i];
ShockwaveFlash1-> Play();
}
如果不是,先计算当前ShockwaveFlash1的播放时间,然后设置定时器,在定时器中播放下一个
[解决办法]
也没用过,不过估计ShockwaveFlash1-> Play()应该是异步的,不过它应该有函数判断时否放完了,放完了就播下一个吧
[解决办法]
参考:http://dev.yesky.com/413/2140413.shtml
[解决办法]
先用CFileFind finder;
finder.FindFile( "d:\\bei\\*.swf "))
用finder找到该目录下的所有swf文件,存成一个数组CString strpath[maxcount];
然后
bool isplay=true;
int i=0;
ShockwaveFlash1-> Movie=string[i];
ShockwaveFlash1-> Play();
设置个定时器SetTimer(1,100,NULL);
在OnTimer里面加上if(ShockwaveFlash1-> GetFrameNum()==-1&&isplay)
{
i++;
if(i> maxcount)
{
i=0;
isplay=false;
}
else
{
ShockwaveFlash1-> Movie=string[i];
ShockwaveFlash1-> Play();
}
}

读书人网 >VC/MFC

热点推荐