Есть страница со ссылкой и встроенной флэшкой.
По клику на ссылке фокус попадает в текстовое поле флэшки. Хотелось бы, чтобы дальше по полям флэшки можно было бы перемещаться с помощью табуляции.
Но TAB не работает во флэшке, пока мы не кликнем на нее.
Т.е. нажимаешь TAB - и фокус уходит обратно на страницу.
http://mmxer.narod.ru/test/avTabTest.html
Код страницы:

Код:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>avTabTest</title>
</head>
<body bgcolor="#ffffff">
<script language="JavaScript">
var loadJSurl = "tabTest.js";
document.write('<scrip' + 't type="text/javascript" src="' + loadJSurl + '">');
document.write('</scrip' + 't>');
</script>
</body>
</html>
Код флэшки:

Код:
this.createTextField("field1", 1, 10, 10, 200, 20);
field1.type = "input";
field1.border = true;
field1.background = false;
field1.password = false;
field1.multiline = false;
field1.html = false;
field1.embedFonts = false;
field1.selectable = true;
field1.wordWrap = false;
field1.mouseWheelEnabled = true;
field1.condenseWhite = false;
field1.restrict = null;
field1.variable = null;
field1.maxChars = null;
field1.styleSheet = undefined;
field1.tabInded = undefined;
this.createTextField("field2", 2, 10, 40, 200, 20);
field2.type = "input";
field2.border = true;
field2.background = false;
field2.password = false;
field2.multiline = false;
field2.html = false;
field2.embedFonts = false;
field2.selectable = true;
field2.wordWrap = false;
field2.mouseWheelEnabled = true;
field2.condenseWhite = false;
field2.restrict = null;
field2.variable = null;
field2.maxChars = null;
field2.styleSheet = undefined;
field2.tabInded = undefined;
function Login()
{
Selection.setFocus(this.field1);
}
import flash.external.ExternalInterface;
ExternalInterface.addCallback("Login", this, Login);
tabTest.js:

Код:
var TABTEST_DIV_ID = "avTabTest";
var TABTEST_SWF_NAME = "avTabTest.swf";
var TABTEST_OBJECT_ID = "av";
var FLASH_CAB_URL = "http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0";
window.top.tabTestInterface = new tabTestInterface();
document.write('<a href="javascript:window.top.tabTestInterface.login();">Login</a>' +
'<div id="' + TABTEST_DIV_ID + '" name="' + TABTEST_DIV_ID + '"' +
' style="position:fixed;z-index:100;left:300 px;top:100 px;width:300px;visibility:hidden;"></div>');
var thisObject = getDocumentObject(TABTEST_DIV_ID);
var tabTestHeight = 100;
var tabTestWidth = 250;
var windowMode = "Transparent";
var tabTestTag = '<div id="' + TABTEST_DIV_ID + '" name="' + TABTEST_DIV_ID + '" ' +
'style="position:absolute;z-index:100;left:0px;top:0px;width:900px;visibility:visible;" >' +
'<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ' +
'codebase="' + FLASH_CAB_URL + '" ' +
'width="' + tabTestWidth + '" height="' + tabTestHeight + '" id="' + TABTEST_OBJECT_ID + '" name="' + TABTEST_OBJECT_ID + '" align="right">' +
'<param name="allowScriptAccess" value="always" />' +
'<param name="movie" value="' + TABTEST_SWF_NAME + '" />' +
'<param name="quality" value="high" />' +
'<param name="bgcolor" value="#ffffff" />' +
'<param name="scale" value="noscale" />' +
'<param name="SeamlessTabbing" value="false" />' +
'<param name="wmode" value="' + windowMode + '" >' +
'</object>' +
'</div>';
thisObject.outerHTML = tabTestTag;
function getDocumentObject(anId)
{
var Result = null;
Result = window.document.getElementById(anId);
if ((Result === null) && (window.document.body))
{
for (var counter = 0;counter < window.document.body.childNodes.length;counter++)
{
if (window.document.body.childNodes[counter].id == anId)
{
Result = window.document.body.childNodes[counter];
break;
}
}
}
if ((Result === null) && (window.document.all))
{
Result = window.document.all[anId];
}
if ((Result === null) && (window.document.layers))
{
Result = window.document.layers[anId];
}
return Result;
};
function tabTestInterface()
{
this.login = function()
{
this.focusOnViewer();
getDocumentObject(TABTEST_OBJECT_ID).Login();
}
this.focusOnViewer = function()
{
var theViewer = getDocumentObject(TABTEST_OBJECT_ID);
if (theViewer === null)
trace("cannot find the Viewer in focusOnViewer()");
else
{
if (typeof(theViewer.focus) == "undefined")
alert("Viewer.focus undefined");
else
theViewer.focus();
}
}
}