Доступ к функции ActionScript через Javascript

Я пытаюсь вызвать функцию в сценарии действия, используя API ExternalInterface.addCallback , но не могу кажется, заставить его работать. Вот что у меня:

ActionScript:

//MyClass.as  
package {

    import flash.display.Sprite;
    import flash.external.ExternalInterface;

    public class MyClass extends Sprite
    {
        public function MyClass()
        {
            ExternalInterface.addCallback('getStringJS', getStringAS);
        }

        public function getStringAS():String
        {
            return "Hello World!";
        }
    }
}

ПРИМЕЧАНИЕ. Я компилирую это в SWF-файл с помощью компилятора flex mxmlc, если это имеет значение.

HTML / Javascript:

<!doctype html>
<html>
    <head>
        <title>User Identification</title>
    <head>
    <body>
        <object id="MyClass" name="MyClass" type="application/x-shockwave-flash" data="MyClass.swf" width="1" height="1">
            <param name="movie" value="MyClass.swf">
            <embed src="MyClass.swf" width="1" height="1">
        </object>
        <script type="text/javascript">
            var flash = document.getElementById("MyClass");
            var str = flash.getStringJS();
            alert(str);
        </script>
    </body>
</html>

Я получаю следующую ошибку:

Uncaught TypeError: Object #<HTMLObjectElement> has no method 'getStringJS'

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

Есть мысли?

Ура,
Майк

6
задан crazyhatfish 19 June 2015 в 13:13
поделиться