de-vraag
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 joon
joon
Вопрос

Как заставить объект flash получать фокус на загрузке?

Я пытался настроить эту тестовую страницу для своей флеш-игры, но она не хочет сосредоточиться на загрузке. Я прочитал кучу записей в форуме и не получил от него ничего, я не могу поверить, что это должно быть так сложно.

Вот что я имею:

  
UP HERE WE ESCAPE THE RAT RACE
<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>
  
  
  

Alternative content

You can see it live here, http://joon.be/exclusivepreview/

что с этим не так? У меня нет очень глубокого знания swfObject ...

5 2011-10-27T20:04:57+00:00 4
 joon
joon
Редактировал вопрос 31-го октября 2011 в 1:38
Программирование
flash
html
ddekany
2-го декабря 2012 в 10:49
2012-12-02T22:49:06+00:00
Дополнительно
Источник
Редактировать
#56792220

Я нашел способ, который работает для меня в 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 () не имел никакого эффекта. (Я использовал код jquery.flash Стивена Беланджера, где вы можете указать wmode ; я предполагаю, что это также возможно с помощью SWFObject ).

Но сложнее то, что вы не должны называть setFocusOnFlash слишком рано. Для Chrome и IE добавление setTimeout (setFocusOnFlash, 1) непосредственно после того, как JavaScript, который вставляет объект, сработал. Непосредственно выдавать setFocusOnFlash () не удалось. Я предполагаю, что трюк заключается в том, что запрограммированные обратные вызовы вызываются только после того, как браузер полностью обработал изменение документа, независимо от указанной вами задержки. Но на Firefox с этой небольшой задержкой было слишком рано; он поместил пунктирную границу вокруг элемента object (он не должен), и Flash не получил нажатия клавиш. Установка задержки на 250 зафиксировала это на моем компьютере, но кто знает, какая большая задержка вам нужна. (Хуже того, повторение вызовов setFocusOnFlash не помогло ни ... когда эта пунктирная граница была там, они не имели никакого дальнейшего эффекта.) Итак, вместо этого я добавил ExternalInterface. call ("flashLoaded") в конструктор класса документа flash . Чтобы быть ясным, вы делаете это в Flash/ActionScript, поэтому вам нужен доступ к источнику или автору SWF-файла. Таким образом, когда SWF запускается, он вызывает JavaScript-код flashLoaded на странице встраивания HTML, поэтому вы знаете, что он готов. Функция была такой:

function flashLoaded() {
   //Oddly, directly calling setFocusOnFlash() didn't work on IE8
    setTimeout(setFocusOnFlash, 1);
}
6
0
MikeB
12-го июля 2012 в 7:10
2012-07-12T07:10:16+00:00
Дополнительно
Источник
Редактировать
#56792219

Способ сделать это - использовать ExternalInterface и отправить фокус на Flash с помощью JS-слушателя в событии табуляции (т. Е. Когда вкладка удаляется от элемента до Flash). На практике это сложно, и обработка stage.focus в вашей AS требует решения некоторых, erm, quirks. Но он действительно работает в перекрестном браузере

1
0
Bemmu
12-го апреля 2015 в 3:18
2015-04-12T15:18:10+00:00
Дополнительно
Источник
Редактировать
#56792221

Я отчаянно искал эту работу, просто чтобы ускорить разработку своей собственной Flash-игры, чтобы не нажимать каждый раз, чтобы проверить свою игру. Поэтому мне было все равно, работает ли он во всех браузерах, поэтому вот что работает только на Chrome.


    

Если вы попробовали focus () раньше, и это не сработало для вас, обратите внимание, что вам нужно использовать только тег embed , а не версию объекта и параметра.

Протестировано в Chrome версии 40.0.2214.93 (64-разрядная версия).

1
0
Justin Beckwith
27-го октября 2011 в 8:09
2011-10-27T20:09:21+00:00
Дополнительно
Источник
Редактировать
#56792218

Метод, который вы используете, будет работать только с Internet Explorer - это ограничение способа использования вспышки.

http://kb2.adobe.com/cps/155/tn_15586.html

0
0
Похожие сообщества 10
HTML/CSS — русскоговорящее сообщество
HTML/CSS — русскоговорящее сообщество
6 493 пользователей
Возникли проблемы с HTML или CSS? – пиши сюда, обсудим и предложим самое лучшее решение. @javascript_ru @js_noobs_ru @frontend_ru Каналы: @defront @htmlshit Ищешь чат? @it_chats Мы всегда рады помочь, но у нас есть правила. ВАЖНО: http://nometa.xyz
Открыть telegram
Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
2 952 пользователей
Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Библиотека верстальщика: @weblibrary Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @bigmarketolog Автор: @M_Boroda
Открыть telegram
WebPwnChat
WebPwnChat
2 390 пользователей
В этом чате обсуждаются атаки и уязвимости на веб-приложения. Любой оффтоп карается баном.
Открыть telegram
Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
2 222 пользователей
Основной канал: @tpverstak Если не можете писать в чате, то перезайдите и подтвердите, что вы не бот, нажав на кнопку 🔥 ПРАВИЛА ЧАТА — @annblok/BygPgC3E7" rel="nofollow noopener noreferrer" class="text-blue hover:text-black link" target="_blank">https://teletype.in/@annblok/BygPgC3E7
Открыть telegram
Frontend_ru
Frontend_ru
2 148 пользователей
Русскоговорящее сообщество фронтенд разработчиков Каналы: @frontendnoteschannel @defront Чаты: @bem_ru @javascript_ru @css_ru Важно! http://nometa.xyz
Открыть telegram
JavaScript чат | HTML 5 & CSS 3
JavaScript чат | HTML 5 & CSS 3
2 055 пользователей
Чат для тех кому нужна помощь по коду, или есть какие-то вопросы по реализации задачи в JavaScript. 💼 По вопросам: @dictor_inc 📰 Флудилка: @javascriptofftop ✏️ Правила: t.me/javascript_alert/3070 Практика: https://t.me/joinchat/GmZ5CkHxDCszM2ko
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Roxana Elizabeth CASTILLO Avalos
Зарегистрирован 5 дней назад
2
Hideo Nakagawa
Зарегистрирован 5 дней назад
3
Sergiy Tytarenko
Зарегистрирован 1 неделю назад
4
shoxrux azadov
Зарегистрирован 1 неделю назад
5
Koreets Koreytsev
Зарегистрирован 1 неделю назад
© de-vraag 2022
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией