Передача HTML-DOM в скрипт действий Flex - PullRequest
0 голосов
/ 16 марта 2010

Все, что я хочу, это передать HTML (объект DOM) из javascript в Actionscript.

я видел эту статью в сети и пробовал подобный код,Но когда я выполняю код в IE, он выдает предупреждение: «Недостаточно памяти в строке 18».Я застрял здесь со вчерашнего дня.

я выложу здесь mxml и html ..

MXML:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
    <mx:Script>
        <![CDATA[

            public function init() : void
            {
                if (ExternalInterface.available) 
                {
                    try {
                        ExternalInterface.addCallback("populateFlashFile", populateFlashFile);
                    } catch (error:SecurityError) {                    
                    } catch (error:Error) {
                    }
                } 
            }
            public function populateFlashFile(window:*) : void
            {
                log.text = window.toString(); // just for checking if window has come to the function.  
                window.document.write("Hello");
            }
            ]]>
            </mx:Script>
    <mx:TextArea x="10" y="23" width="712" height="581" id="log"/>
</mx:Application>

HTML:

<html lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body scroll="no">

<input type="button" onclick="document.getElementById('Test').populateFlashFile(window);"/>

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
            id="Test" width="100%" height="100%"
            codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
            <param name="movie" value="Test.swf" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="#869ca7" />
            <param name="allowScriptAccess" value="sameDomain" />
    </object>
</body>
</html>

Проблема возникаеттолько когда я передаю некоторый объект DOM, если я передаю некоторую строку, это работает. !!!т.е.:
<input type="button" onclick="document.getElementById('Test').populateFlashFile('some text here');"/>
отлично работает!

1 Ответ

0 голосов
/ 16 марта 2010

то, что вы пытаетесь сделать, возможно только с AIR. если вы пересмотрите ссылку, которую вы разместили, вы должны увидеть. Это связано с тем, что AIR запускает AS и JS на включенном Tamarin .

Насколько я знаю, вы можете передавать только примитивные значения между JS и AS, в обе стороны. Может быть, массивы и анонимные объекты, но я бы на это не полагался.

однако вы можете вставить произвольный JS в содержащий HTML .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...