用flash8b.ocx控件写了一个基于对话框的flash播放器,现需要加一个搜索并直接运行当前路径下的某个".swf文件"功能.该功能我写的代码如下:
void CMyFlashDlg::OnSearch()
{
UpdateData();
if(!m_strfile.GetLength())
{AfxMessageBox("please enter your search filename");return ;} WIN32_FIND_DATA fd;
HANDLE hd=::FindFirstFile((LPCTSTR)(m_strfile+".swf"),&fd);
if(hd==INVALID_HANDLE_VALUE) {return;}
a=fd.cFileName;
SwfPlay(&a);
while(FindNextFile(hd,&fd))
{
SwfPlay(&a);
};
FindClose(hd);
}
调用的swfPlay函数如下:void CMyFlashDlg::SwfPlay(CString *szFilePath) //播放flash
{
char *chFilePath=NULL;
chFilePath=szFilePath->GetBuffer(szFilePath->GetLength());
m_MyFlash.SetMovie(chFilePath);
m_MyFlash.Play();
m_MyFlash.SetLoop(TRUE);
m_MyFlash.SetBackgroundColor(m_MyFlash.GetBackgroundColor());
}编译可以通过,可以运行后flash怎么也播放不起来, 望高手给予帮助,昨晚想得一夜没睡好觉
void CMyFlashDlg::OnSearch()
{
UpdateData();
if(!m_strfile.GetLength())
{AfxMessageBox("please enter your search filename");return ;} WIN32_FIND_DATA fd;
HANDLE hd=::FindFirstFile((LPCTSTR)(m_strfile+".swf"),&fd);
if(hd==INVALID_HANDLE_VALUE) {return;}
a=fd.cFileName;
SwfPlay(&a);
while(FindNextFile(hd,&fd))
{
SwfPlay(&a);
};
FindClose(hd);
}
调用的swfPlay函数如下:void CMyFlashDlg::SwfPlay(CString *szFilePath) //播放flash
{
char *chFilePath=NULL;
chFilePath=szFilePath->GetBuffer(szFilePath->GetLength());
m_MyFlash.SetMovie(chFilePath);
m_MyFlash.Play();
m_MyFlash.SetLoop(TRUE);
m_MyFlash.SetBackgroundColor(m_MyFlash.GetBackgroundColor());
}编译可以通过,可以运行后flash怎么也播放不起来, 望高手给予帮助,昨晚想得一夜没睡好觉
感觉有问题void CMyFlashDlg::OnSearch()
{
UpdateData();
if(!m_strfile.GetLength())
{AfxMessageBox("please enter your search filename");return ;} WIN32_FIND_DATA fd;
HANDLE hd=::FindFirstFile((LPCTSTR)(m_strfile+".swf"),&fd);
if(hd==INVALID_HANDLE_VALUE) {return;}
a=fd.cFileName;
SwfPlay(&a);
while(FindNextFile(hd,&fd))
{
SwfPlay(&a);
};
FindClose(hd);
}
SwfPlay(&a);
传递进去的是 char ** 我感觉你可以直接把 那个a=a=fd.cFileName;
直接换成 m_strfile+".swf"
还有 你为什么搜索到了文件 还要调用
while(FindNextFile(hd,&fd))
{
SwfPlay(&a);
};
while(FindNextFile(hd,&fd))
{
SwfPlay(&a);
}; 这个已经去掉了,因为我看到MSDN上的搜索的例子.说搜索要用FindFirstFile和FindNextFile两个函数,如果照你这样改的话就根本用不到这两个函数哦,我感觉你可以直接把 那个a=a=fd.cFileName;
直接换成 m_strfile+".swf"如果这样改的话只是得到了一个文件名而已,并没有得到路径啊
{
// TODO: Add your control notification handler code here
UpdateData();
if(!m_strfile.GetLength())
{AfxMessageBox("请输入您要查询的汉字");return ;} CFileFind ffPath;
CString PATH;
CString b=m_strfile+".swf";
if (!ffPath.FindFile(b))
{
AfxMessageBox("字库中暂时还没有这个汉字");return ;
}
ffPath.FindNextFile();
PATH=ffPath.GetFilePath();
SwfPlay(&PATH);
}写是写完了,居然换回一句界面不够美观,想请问下用VC做的东西界面如何美观哦,界面美化是不是得找个美工呢.不想干了.找茬,而且我还是个做开发的新手.可能半个小时做出个flash播放器?
半个小时能做出flash播放器,楼主真牛!!
CFileFind ffPath;
CString PATH;
CString b=m_strfile+".swf"; //m_strfile是输入框映射的变量
ffPath.FindFile(b);
ffPath.FindNextFile();
PATH=ffPath.GetFilePath();
SwfPlay(&PATH);