【问题标题】:How to change focus on page load in javascript for flash game?如何在 Flash 游戏的 javascript 中更改页面加载的焦点?
【发布时间】:2014-07-04 17:27:29
【问题描述】:

这是我在 html 中生成的 flash 对象的代码:
<object type="application/x-shockwave-flash" id="coloredconfusion" data="xxx-game-path" width="700" height="600">...</object>

在haml中我有:

:javascript $(文档).ready(函数() { document.getElementById('#{@game.codename}').focus(); });

我希望游戏加载后能够集中注意力。甚至可能吗?什么是正确的方法?

【问题讨论】:

  • @sawa 没有。我的代码没有专注于游戏。
  • 你得到了什么 JavaScript 错误?
  • 更重要的是,JavaScript 源代码在渲染时是什么样子的?查看源代码并查看它在客户端中的显示方式。另外,如果您使用的是 jQuery,为什么不使用$('...').focus() 而不是硬着头皮呢?
  • @sawa Uncaught TypeError: Cannot read property 'focus' of null
  • @tadman JS 正确渲染:

标签: javascript ruby-on-rails ruby flash haml


【解决方案1】:

如果您必须等待它出现,这可能会起作用:

var timer = setInterval(function() {
  var app = $('#coloredfusion');

  if (app[0]) {
    app.focus();
    clearInterval(timer);
  }
}, 500);

它将每 500 毫秒轮询一次元素是否存在,当它找到它时,将聚焦它并停止检查。

【讨论】:

    【解决方案2】:

    我在 Flash 应用程序中成功使用了以下内容 - 它在创建应用程序后(在 creationComplete 事件处理程序中)回调 JavaScript 以设置焦点:

    // Force the browser to give focus to the app
    ExternalInterface.call('function() { var app = document.getElementById("appName"); app.focus(); }');
    

    将“appName”替换为您的实际应用名称。

    【讨论】:

      猜你喜欢
      • 2018-12-09
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      相关资源
      最近更新 更多