s

解决方案 »

  1.   

    BOOL IsPlaying()
    {
    BOOL result;
    InvokeHelper(0x81, DISPATCH_METHOD, VT_BOOL, (void*)&result, NULL);
    return result;
    }
      

  2.   

    这种方法可行吗?
    好像Flash控件没有提供事件。
      

  3.   

    Flash控件有一个Playing属性,通过它应该可以知道是否已经播放完毕。
    if(m_flash.GetPlaying()==FALSE)
    {
       //已经播放完毕
    }
      

  4.   

    两个方法都还是很好。
    IsPlaying()在Flash Ctrl没有LOAD进FLASH时它也会返回TRUE,
    GetPlaying在动画暂停时(通过调用Stop()方法)也会返回FALSE。
    所以这两种方法都不可靠。
      

  5.   

    就是嘛,不过我们考虑的是Flash已经开始播放。“是不是已经播放完毕”只在已经开始播放的情况下才有意义嘛
      

  6.   

    单靠GetPlaying()、IsPlaying()、CurrentFrame()、TotalFrames()很难准确地
    判断Flash是否已经播完。
      

  7.   

    有的Flash根本就放不完,那怎么办
      

  8.   

    用Flash的Fscommand方法在Flash播放完的那一楨輸出一段約定好的字符串,比如説“playover”,然後用控件的Fscommand函數捕捉,然後判斷一下:
    void CTestShockDlg::OnFSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args) 
    {
             if(command == "playover")
             {
                   //播放完畢
             }
    // TODO: Add your control notification handler code here

    }就是麻煩點,需要事先對swf文件進行修改,加一個事件在裏面,現在我在想用CHtmlView播放Flash並判斷Flash播放完的方法,不知道有沒有哪位大蝦能指點一下,還沒頭緒呢,flash控件不知道怎麽實現的