Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Табуляция не работает, пока не кликнешь на ActiveX (http://www.flasher.ru/forum/showthread.php?t=89154)

mmxer 08.12.2006 18:33

Табуляция не работает, пока не кликнешь на ActiveX
 
Есть страница со ссылкой и встроенной флэшкой.
По клику на ссылке фокус попадает в текстовое поле флэшки. Хотелось бы, чтобы дальше по полям флэшки можно было бы перемещаться с помощью табуляции.
Но 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();
                }
        }

}



Часовой пояс GMT +4, время: 21:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.