遇到一个闹心的问题!按理说在程序中播放一个FLASH动画并等待其结束很easy的。可是,当我完成相关功能并交给老板时(我自己和测试人员简单测了一下,没有问题),老板随便点了一个FLASH来测试,晕~,马上出问题。描述如下,各位帮忙解困:
在一个程序中,需要控制播放一个FLASH。并等待FLASH播放完毕才执行后续的routine。其等待部分代码如下:
while (ctlFlash.FrameNum < ctlFlash.TotalFrames) do Application.ProcessMessages;
程序在第一次播放FLASH没有问题,但是当需要在程序再次播放时,却捕获了错误。调试得知:
FrameNum的值变为-1;
TotalFrames的值变为不可使用(OLE数据没有准备好)当然,并不是所有的FLASH播放都有这个错误,只有极个别的有这个错误。我用IE播放这些FLASH时,当播放完毕后,右键菜单显示:一个灰色的“没有加载影片”菜单和“关于 MecroMedia Flash ”菜单。为此,我在播放代码前加上对Movie进行赋值的语句,保证每次播放前都加载一次FLASH,但是还是不行。播放部分部分源代码如下:
    if ctlFlash.FrameNum < 0 then  
            begin
                ctlFlash.Stop;
                ctlFlash.Movie := szFlashFileName;
            end;
                        while (ctlFlash.ReadyState<>4) do //READYSTATE_COMPLETE
                Sleep(10);            ctlFlash.Play;            while (ctlFlash.FrameNum < ctlFlash.TotalFrames) do
            begin
                Application.ProcessMessages;
                if ctlFlash.FrameNum < 0 then Exit;
            end;
            ctlFlash.Stop;我对FLASH不熟悉,哪位可以指点迷津,这里多谢!