PDA

Просмотр полной версии : Событие keydown не наступает !?


utr
26.02.2008, 14:32
Событие keydown не наступает (несмотря на нажатие клавиш) до тех пор пока не наступит событие mouseDown, после этого все работает правильно в соответствии с кодом.

Происходит это при воспроизведении в браузерах, в среде Flash-разработки все отрабатывает правильно.

Манипуляции с фокусом эффекта не дают.

Как победить?

chingachgoog
26.02.2008, 15:04
А манипуляции с фокусом где проводятся и как?

CrazyFlasher
26.02.2008, 15:10
а рамка случайно не появляется вокруг флэш контента (в ИЕ)? :)

utr
26.02.2008, 15:27
пробовал так:
ff = new Object()
....
ff.onKeyDown = function()
{
if (Key.isDown(...)) {...}
}
Key.addListener(ff)

или просто:
keycheck = function()
{
if (Key.isDown(...)) {...}
}

если привязать к какому-нибудь клипу on (keyPress "...") {...} – ситуация не меняется

(т.е. работает, но только после того как кликнуть мышкой)

рабочий пример здесь: http://web-photos.ru/demo/ должны работать в частности клавиши со стрелками

рамки нет, поскольку она отключена ява-скриптом swfobject.js. Скрипт при отключении на эту ситуацию не влияет.

iNils
26.02.2008, 16:28
utr, для оформления своего кода надо использовать теги . Исправьте.

Molecula
27.02.2008, 02:00
У меня нормально работает, т.е. загрузил сайт и сразу клавишами потыкал, фотки туда-сюда ездиють.
Использовал ИЕ7.

chingachgoog
27.02.2008, 09:59
да у меня тоже после клика лишь сработало.

так где фокус назначается?

utr
27.02.2008, 19:59
тот код, который я указывал, все проверки клавиш стоит на _root
(у меня Safari Mac / но на ИЕ6 ведет себя также)

chingachgoog
28.02.2008, 01:03
в коде выше фокус не назначается

utr
28.02.2008, 03:11
не знаю как и куда этот фокус нужно ставить, мне казалось, что для события keydown фокус не нужен.

(?) что-нибудь типа:
_root.createTextField("tf", 3, 220, 10, 200, 100);
tf.type = "input";
Selection.setFocus("tf");
пока ничего не выходит

chingachgoog
28.02.2008, 11:11
Вы не поняли. Тут дело не в скрипте во флешке. А в фокусе самого флеш-плеера на странице браузера. Для понимания этого, запустите StandAlone плеер на рабочем столе, снимите с него фокус (кликните на другом окне) и посмотрите какие события он обрабатывает после этого.

utr
28.02.2008, 22:46
мало понимаю HTML и javascript.
Вот мой index
попробовал добавить focus() см.выделенная строка, но, видимо неправильно.
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
</head>
<body bgcolor="#888888" text="black" vlink="black">

<!-- SWFObject -->
<script type="text/javascript" src="swfobject.js"></script>
<style type="text/css">

/* hide from ie on mac \*/
html {
height: 100%;
overflow: hidden;
}

#flashcontent {
height: 100%;
}
/* end hide */

body {
height: 100%;
margin: 0;
padding: 0;
}

</style>
</head>
<body>
<div id="flashcontent">
<div align="center">...</div>

<script type="text/javascript">
// <![CDATA[

var so = new SWFObject("wp4.swf", "sotester", "100%", "100%", "8","#888888");
so.addParam("quality", "best");
<!-- so.addVariable("a", "aa");-->
so.addParam("scale", "noscale");
so.write("flashcontent");

window.flashcontent.focus();

// ]]>

</script>
</body>
</html>
"куда ставить-то?"

utr
01.03.2008, 13:12
есть такая несколько туманная на обнадеживающая в документе описывающем
SWFObject.js фраза
SWFObject определяет весию Flash player начиная с 3 и, так как вывод
производится динамически, «активировать» Flash контент пользователю не
нужно.

источник: http://blog.deconcept.com/swfobject/

gameplaymer
15.05.2008, 23:19
==============
мало понимаю HTML и javascript.
Вот мой index
попробовал добавить focus() см.выделенная строка, но, видимо неправильно.
=====================

document.flashcontent.focus();
помогает для IE а вот для FireFox - сам найти не могу
Помогите кто уже решил эту задачу?

Crazy Driver
31.07.2008, 10:06
==============
мало понимаю HTML и javascript.
Вот мой index
попробовал добавить focus() см.выделенная строка, но, видимо неправильно.
=====================

document.flashcontent.focus();
помогает для IE а вот для FireFox - сам найти не могу
Помогите кто уже решил эту задачу?
document.getElementById("flashcontent").focus();
Работает во всех браузерах.

darksranger
31.07.2008, 11:03
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>SWFObject 2 dynamic publishing example page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.embedSWF("mySWF.swf", "myContent", "900", "900", "9.0.0", "expressInstall.swf");
</script>
</head>
<body>
<div id="myContent">
<h1>Alternative content</h1>
<p><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>
</div>
</body>
</html>

попробуйте так