html – 如何让我的flash对象专注于加载?

html – 如何让我的flash对象专注于加载?,第1张

概述我一直试图为我的Flash游戏设置这个测试页面,但它拒绝专注于加载.我读了一堆论坛条目并没有让它做任何事情,我真的不相信这应该是这么难. 这就是我所拥有的: <head><title>UP HERE WE ESCAPE THE RAT RACE</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859 我一直试图为我的Flash游戏设置这个测试页面,但它拒绝专注于加载.我读了一堆论坛条目并没有让它做任何事情,我真的不相信这应该是这么难.

这就是我所拥有的:

<head><Title>UP HERE WE ESCAPE THE RAT RACE</Title><Meta http-equiv="Content-Type" content="text/HTML; charset=iso-8859-1" /><script type="text/JavaScript" src="http://AJAX.GoogleAPIs.com/AJAX/libs/swfobject/2.2/swfobject.Js"></script><script type="text/JavaScript">    swfobject.embedSWF("UpHere.swf","myContent","700","300","9.0.0");    function setFocusOnFlash() {     var fl = document.getElementByID("myContent");       if (fl) { fl.focus(); }     } </script>  </head>  <body  onload="setFocusOnFlash()">  <div >    <div ID="myContent" >      <p>Alternative content</p>    </div>     </div>      </body>

你可以在这里看到它,
http://joon.be/exclusivepreview/

它出什么问题了?
我对swfObject没有很深的了解……

解决方法 我找到了一种适用于firefox 16,Chrome 23和IE 8的方法(这些是我到目前为止测试过的地方).当然,这是一堆黑客,所以谁知道它是否会永远有用……但它肯定不会让事情变得更糟.
function setFocusOnFlash() {        var flash = document.getElementByID("theIDOfTheObjectElement");    flash.tabIndex = 1234;  // This was needed on Chrome 23    flash.focus();    // Attention: firefox needs wmode "opaque"!}

仅在firefox上,< param name =“wmode”value =“opaque”>还需要在object元素下,否则focus()没有效果. (我使用了Stephen Belanger的jquery.flash,你可以在其中指定wmode;我认为它也可以用SWFObject.)

但更棘手的部分是你不能太早调用setFocusOnFlash.对于Chrome和IE,在插入对象的JavaScript之后直接添加setTimeout(setFocusOnFlash,1).直接发出setFocusOnFlash()没有.我假设诀窍很简单,只有在浏览器完全处理文档更改后才会调用定时回调,无论您指定的延迟如何.但是在firefox上用这个小延迟打电话太早了;它在对象元素周围放置了一个虚线边框(它不应该),Flash没有得到击键.将延迟设置为250已在我的计算机上修复此问题,但谁知道您需要多大的延迟. (更糟糕的是,重复setFocusOnFlash调用也没有帮助……一旦那个虚线边框存在,它们没有进一步的效果.)所以,我所做的是将一个Externalinterface.call(“flashLoaded”)回调添加到flash文档类构造函数.为了清楚起见,您可以在Flash / ActionScript中执行此 *** 作,因此您需要访问SWF文件的源或作者.这样,当SWF启动时,它会调用嵌入HTML页面的flashLoaded JavaScript方法,因此您就知道它已准备就绪.功能如下:

function flashLoaded() {    // Oddly,directly calling setFocusOnFlash() dIDn't work on ie8    setTimeout(setFocusOnFlash,1);}
总结

以上是内存溢出为你收集整理的html – 如何让我的flash对象专注于加载?全部内容,希望文章能够帮你解决html – 如何让我的flash对象专注于加载?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1109056.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存