在Windows窗体中播放.SWF文件时,我注意到它不需要任何相对路径。
以下所做的是,每次PlayVideo表单对话框打开时,它都会加载一个我使用全局变量跟踪的新视频:GlobalVariablesTracking.videoTrack
并在成功加载视频后递增它。
private void PlayVideo_Load(object sender, EventArgs e)
{
CurrentVideoKey = GlobalVariablesTracking.videoTrack;
currentVideoName = ConfigurationManager.AppSettings[CurrentVideoKey.ToString()];
if (!String.IsNullOrEmpty(currentVideoName))
{
GlobalVariablesTracking.videoTrack = GlobalVariablesTracking.videoTrack + 1;
axShockwaveFlash1.Movie = "\\Videos\\" + currentVideoName;
axShockwaveFlash1.Play();
}
}
以下是我从App.Config
<add key="1" value="a.swf"/>
<add key="2" value="b.swf"/>
.....
我在线上遇到的问题:
axShockwaveFlash1.Movie = "\\Videos\\" + currentVideoName;
不需要相对路径。如果指定完整的绝对路径如下,则它可以正常工作。
axShockwaveFlash1.Movie = "C:\\Videos\\" + currentVideoName;
如何让这个ShockWave flash对象使用相对URL?
答案 0 :(得分:0)
终于搞定了。
解决方案是使用Application.StartupPath
并将其余的相对路径附加到其中。
axShockwaveFlash1.Movie = Application.StartupPath +"\\Videos\\"+ currentVideoPath;
这MSDN article非常有帮助。