2010-08-02 102 views
0

请保存我的皮肤。Flash Embed不起作用

http://clubentertainment.ie/c/art-perf/embed_example.html

上面的链接应该在Firefox加载,什么都不会加载。似乎没有引发任何错误。它甚至验证。

它使用swfobject,所有的链接似乎工作..它只是不实际工作。我想责怪Flash对象,但因为它在Firefox中工作,所以错误必须在其他地方。

任何想法?是否有其他方法嵌入并仍然有效?

另外的wmode透明度不允许HTML下拉菜单出现在闪光灯顶部..

不知道发生了什么恩惠 - 我发现这个问题。这个错误肯定与服务器有关。移动网站,没有任何改变。工作得很好。我只想感谢每一位的帮助。

+0

我可以看到它在FF中工作3.6.2 – Sarfraz 2010-08-02 14:14:20

+0

可能是因为http://clubentertainment.ie/c/art-perf/CU3ER.swf(你的SWF电影)无法加载。 – tcooc 2010-08-02 14:16:50

+0

我认为Flash是一个封闭的平台,它在所有浏览器中加载相同。我只是不明白为什么它在FF中加载,没有其他地方。 – JasonS 2010-08-02 14:25:20

回答

2

我认为这是跨域策略的问题。尝试使用相对路径url而不是绝对路径。你现在有绝对路径。

+0

难道主机是垃圾吗?这是我的服务器瓦特/绝对网站上托管。 http://jasonstanley.co.uk/test/embed_example.html。我的主机从外地链接..一半的作品。 http://clubentertainment.ie/embed_example.html – JasonS 2010-08-09 10:56:53

+0

林不知道,我不这么认为。 尝试将clubentertainment.ie/embed_example.html中的xml文件链接到它自己的域,看看它是否工作。 – Codler 2010-08-09 11:16:39

+0

不幸的是,这是问题,我已经尝试过ce网站上的相关网址和绝对网址。两者都在Firefox中加载,没有别的。尝试在我的服务器上的相对/绝对。完全相同的文件和作品。 – JasonS 2010-08-09 11:19:15

0

您可以随时尝试在XHTML中使用有效技术嵌入Flash。你可以在这里找到更多关于这个:http://latrine.dgx.cz/how-to-correctly-insert-a-flash-into-xhtml

至于swfobject,它似乎有一些浏览器相关的问题。我稍后会试着弄清楚这一点。如果我得出任何结论,我会告诉你。

编辑

尽量使用相对路径SWF文件。它为我工作。

2

当把直接链接到你的瑞士法郎,它的工作即ie。 http://clubentertainment.ie/c/art-perf/CU3ER.swf

它可能是一个跨站点问题。 这里CU3ER用于演示代码http://getcu3er.com/features/

<script type="text/javascript"> 

        var vars = { xml_location : '/inc/cu3er/config_features_overview.xml?v=2'}; 
        var params = { wmode:'transparent' }; 
        var attributes = { id:'CU3ER', name:'CU3ER' }; // give an id to the flash object 

        swfobject.embedSWF("/CU3ER.swf", "cu3er-container", "300", "390", "9.0.45", "/js/expressInstall.swf", vars, params, attributes); 

       </script> 

编辑: 通过只是把你的代码在身体没有我的SWF中即

<body > 
    <script type="text/javascript"> 
     // add your FlashVars 
     var vars = { xml_location : 'http://clubentertainment.ie/c/art-perf/CU3ER-config.xml' }; 
     // add Flash embedding parameters, etc. wmode, bgcolor... 
     var params = { bgcolor : '#ffffff' }; 
     // Flash object attributes id and name 
     var attributes = { id:'CU3ER', name:'CU3ER' }; 
     // dynamic embed of Flash, set the location of expressInstall if needed 
     swfobject.embedSWF('http://clubentertainment.ie/c/art-perf/CU3ER.swf', "CU3ER", 500, 250, "9.0.45", "http://clubentertainment.ie/c/art-perf/js/expressInstall.swf", vars, params, attributes); 
     // initialize CU3ER class containing Javascript controls and events for CU3ER 
     // var CU3ER = new CU3ER("CU3ER"); 
    </script> 

    <!-- CU3ER content HTML part starts here --> 
    <div id="CU3ER"> 
    <noscript> 
     <!-- modify this content to provide users without Flash or enabled Javascript with alternative content information --> 
     <p>Click to get Flash Player<br /><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p> 
     <p>or try to enable JavaScript and reload the page 
     </p> 
    </noscript> 
    </div> 
    <!-- CU3ER content HTML part ends here --> 


</body> 
+0

谢谢,这实际上起作用但是没有任何意义。主站点使用Wordpress运行,JavaScript始终处于正常运行状态,直到今天才在IE中运行。它仍然不能在Opera中运行。另外,在IE中,如果清除缓存并转到此处。 http://clubentertainment.ie/entertainment/闪光灯不加载。再次加载页面,它会。它有点奇怪。 – JasonS 2010-08-09 12:01:03

1

工作的标头,我看到它不适用于Safari 5,但适用于Firefox 4.请尝试使用SWFObject静态发布方法进行嵌入,以便您可以排除JavaScript作为潜在问题:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
<head> 
    <title>CU3ER</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <script type="text/javascript" src="/c/art-perf/js/swfobject.js"></script> 
    <script type="text/javascript" src="/c/art-perf/js/CU3ER.js"></script> 
    <script type="text/javascript"> 
     swfobject.registerObject("cu3er-container", "9.0.45", "/c/art-perf/js/expressInstall.swf"); 
    </script> 
</head> 
<body> 
    <div> 
     <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="300" height="390" id="cu3er-container" class="CU3ER"> 
      <param name="movie" value="/c/art-perf/CU3ER.swf" /> 
      <param name="wmode" value="transparent" /> 
      <param name="bgcolor" value="#ffffff" /> 
      <param name="flashvars" value="xml_location=/inc/cu3er/config_features_overview.xml?v=2" /> 
      <!--[if !IE]>--> 
      <object type="application/x-shockwave-flash" data="/c/art-perf/CU3ER.swf" width="300" height="390" class="CU3ER"> 
       <param name="wmode" value="transparent" /> 
       <param name="bgcolor" value="#ffffff" /> 
       <param name="flashvars" value="xml_location=/inc/cu3er/config_features_overview.xml?v=2" /> 
      <!--<![endif]--> 
       <a href="http://www.adobe.com/go/getflashplayer"> 
        <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> 
       </a> 
      <!--[if !IE]>--> 
      </object> 
      <!--<![endif]--> 
     </object> 
    </div> 
</body> 
</html> 

您可能需要调整JavaScript来处理'cu3er-container'ID或'CU3ER'类。在这个例子中,如果Flash的版本不足,只能调用SWFObject,以便它可以提供快速升级的快速安装程序,否则这不需要JavaScript。

+0

我试过你粘贴的代码,但没有出现。我试图自己嵌入,但失败了。如何在不使用swfobject的情况下嵌入对象? – JasonS 2010-08-10 11:26:32

+0

这就是你如何嵌入没有SWFObject。你可以完全移除对SWFObject的两个引用,这仍然可以工作。如果此代码没有出现任何内容,则表明您的主机正在阻止文件类型,未使用适当的mimetype提供文件类型,或者路径不正确。由于我不在你的服务器上,所以我无法仔细检查。 – Aaron 2010-08-10 12:46:04

+0

感谢您的额外信息。我会在早上继续这个。 – JasonS 2010-08-10 14:08:47

0

在Chrome 5.0.375.125中,SWF加载非常好,但幻灯片不加载。我怀疑这可能与不同网页浏览器处理Javascript错误的差异有关。

我启用了用于Internet Explorer的脚本调试(我强烈建议您这样做)并打开了您的页面,并且我立即看到Flash ExternalInterface调用了CU3ER.js中定义的Javascript函数时出现Javascript错误。有时浏览器会在遇到错误时决定停止运行脚本,有些则会继续。 Firefox正处于“只是继续”的阵营。当在IE中单击“忽略”错误时,IE能够加载图像但继续导致Javascript错误。

由于CU3ER无法在DOM中找到它,因此Javascript错误似乎正在发生。这是基于这样的事实,这个JavaScript函数调用发出:

__flash__addCallback(document.getElementById(""), "playCU3ER"); 

所发出函数的定义是这样的:

function __flash__addCallback(instance, name) { 
    instance[name] = function() { 
     return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>")); 
    } 
} 

document.getElementById被称为用一个空字符串的事实可能意味着有CU3ER需要一些缺失的闪存变量。检查SWF的文档,并确保嵌入时您有什么需要。或者像其他人提到的那样,它可能是一个相对与绝对URL的问题。