更新:原来这是undocumented behaviour类的NetStream - NetStream相对于swf加载,而不是相对于HTML文档加载的URLRequest。烦人的。
我遇到一个奇怪的问题,即使用CS4附带的fl.video.VideoPlayer
类加载FLV文件:Adobe docs here
通常在将外部内容加载到flashplayer时,路径相对于嵌入swf的HTML页面 - 但是当我尝试使用VideoPlayer类加载FLV时,播放器会查找相对于swf的路径,而不是到HTML(如你所料)。
例如:
我的文件设置为:index.html
(包含swf)
swf/my-video-player.swf
video/my-video.flv
当我从swf(在index.html中)调用videoPlayer.play("video/my-video.flv")
时,浏览器会尝试加载相对于swf的"swf/video/my-video.flv"
,而不是HTML。
有没有其他人在使用VideoPlayer课程时遇到过这种行为?有什么想法可能会发生这种情况吗?
答案 0 :(得分:1)
Flash“always”使用html的路径作为相对路径的基础(更具体地说,所有URLRequests)...这是除非设置了基本html参数(see here)。
但是,我记得当FileReference出现在AS2(关于NetStream的dunno)时,由于某种原因,它的路径总是相对于swf ...当AS3出来时我认为URLRequest修复了它。
我不知道你提到哪个“VideoPlayer”类...快速谷歌搜索给了我一个AS2类的链接,所以如果你使用AS2(坏标签BTW ^^)你可能会遇到我提到的问题。
现在我考虑一下,NetStream不使用URLRequests(它是唯一没有的外部加载进程吗?),所以它可能与此有关...也许URLRequest.url提供了更正的URL,我没试过。