我用了CShockwaveFlash播放Flash我现在弄了个Timer实现三个Flash循环播放
现在循环播放可以实现了
但是窗体背景色永远是第一个Flash的如何解决啊~~~
void CPlayFlashDlg::OnTimer(UINT nIDEvent)
{
if(nIDEvent==1)
{
    // url change
    CString strFileName = strRootPath + strFileNames[nCnt++];
    if(m_FlashPlayer.IsPlaying())
    {
m_FlashPlayer.StopPlay();
m_FlashPlayer.Stop();
    }
    m_FlashPlayer.SetMovie(strFileName);
    m_FlashPlayer.Play();
    if(nCnt >= 3) nCnt = 0;
}
else
{
    CPlayFlashDlg::OnTimer(nIDEvent);
}
}

解决方案 »

  1.   

    加在什么地方啊
    我加在m_FlashPlayer.SetMovie(strFileName);上面没反应
      

  2.   

    先 m_FlashPlayer.ShowWindow(SW_HIDE);
    在Paly()后面:m_FlashPlayer.ShowWindow(SW_SHOW);
      

  3.   

    三个Flash循环播放?看了你的代码,逻辑上有些问题吧。
    CPlayFlashDlg::OnTimer(nIDEvent); ==> CDialog::OnTimer(nIDEvent);
    函数用的是正确的,或者try  LoadMovie ,我写过flash播放器,没出现两个flash相互干扰的情况
      

  4.   

    to seu07201213:
    我试过LoadMovie 
    好像不行
    麻烦你能给点事例代码不??
      

  5.   

    代码很简单:
    m_SwfBox.LoadMovie(0,dlgFileOpen.m_ofn.lpstrFile);m_SwfBox.Play();
      

  6.   

    to seu07201213:
    我的代码也是这样啊,但是不行的
    背景色总是显示第一个Flash的背景色能把你做的给我看看么?
    我对VC不熟
    谢谢了to sinall:
    比如第一个Flash的背景色是红的,第二个背景色是黑的,播放完第一个,接着播放第二个的时候,第二个的背景色还留着红色,也就是说第一个的背景色影响以后的
      

  7.   

    切换Flash播放前重画一下窗口。用InvalidateRect函数
      

  8.   

    to wangk(倒之):
    我在切换Flash播放前加了
    RECT rc;
    this->GetClientRect(&rc);
    this->InvalidateRect(rc,true);
    m_FlashPlayer.InvalidateRect(rc,true);还是没反应~~~