此页面在本地请求时起作用(播放Flash影片), http://localhost:8080/flash.aspx
我也设置了url路由 http://localhost:8080/videos/也指示 http://localhost:8080/flash.aspx
如果我设置了以下Facebook应用程序设置:
---网站---
--- facebook整合---
当我请求页面时:http://apps.facebook.com/my_app - http://localhost:8080/flash.aspx加载到facebook画布(我可以看到我的测试文本), 但是,flash电影无法播放。
这是我用来在flash.aspx上加载swf的jquery代码
$(document).ready(function () {
if (swfobject.hasFlashPlayerVersion("6.0.0")) {
var att = { data: "flash/video.swf", width: "385", height: "312" };
var par = { flashvars: "foo=bar" };
var id = "video-container";
swfobject.createSWF(att, par, id);
}
});
当我要求时,为什么没有播放Flash影片的任何想法: http://apps.facebook.com/my_app/但在本地请求页面时确实可以播放?
答案 0 :(得分:1)
使用flash文件的绝对路径修复它。 http://www.mysite.com/flash/video.swf
答案 1 :(得分:1)
我不知道域名问题(这些问题超出了SWFObject的范围),但您的代码可以稍微改进一下。您将整个块包装在jQuery ready
函数中,但之后您还使用了addDomLoadEvent。这是多余的。您可以简化为:
$(document).ready(function () {
if (swfobject.hasFlashPlayerVersion("6.0.0")) {
var att = { data: "flash/video.swf", width: "385", height: "312" };
var par = { flashvars: "foo=bar" };
var id = "video-container";
var myObject = swfobject.createSWF(att, par, id);
}
});
或者您可以使用SWFObject的embedSWF
函数,它具有内置的domload检测功能:
var flashvars = { foo: "bar" };
var par = {};
var att = {};
swfobject.embedSWF("flash/video.swf", "video-container", "385", "312", "6.0.0", false, flashvars, par, att);