JavaScript 调用 AS3 错误

标签 javascript flash actionscript-3

我试图让我的 HTML 页面在我的 AS3 中调用我的函数,但我的 JavaScript 一直提示 not a function。我的 SWF 在同一个域中。

AS3:

public function Client() {
        ExternalInterface.call('flashReady');
        if (ExternalInterface.available) {
            //ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);
            ExternalInterface.addCallback("jsPlayStream", onPlayStreamHandler); //FLV.play()
            ExternalInterface.addCallback("jsStopStream", onStopStreamHandler); //FLV.stop()
            ExternalInterface.addCallback("jsSoundStream", onSoundHandler); ////FLV.volume(0 - 1)
        }
}

private function onPlayStreamHandler(value:String):void {
    flvPlayer.play();
}

private function onStopStreamHandler(value:String):void {
    flvPlayer.stop();
}

private function onSoundHandler(value:Boolean):void {
    if (value == true) {
        flvPlayer.volume = 1;
    } else {
        flvPlayer.volume = 0;
    }
}

JS代码:

$("#vidPlay").click(function () {
    if (bFlashReady == true) {
        thisMovie("Client").jsPlayStream("play");
     }
});

$("#vidPause").click(function () {
    if (bFlashReady == true) {
        thisMovie("Client").jsStopStream("stop");
    }
});

$("#vidSoundOn").click(function () {
    if (bFlashReady == true) {
        thisMovie("Client").jsSoundStream(true);
    }
});

$("#vidSoundOff").click(function () {
    if (bFlashReady == true) {
        thisMovie("Client").jsSoundStream(false);
    }
});

function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }
}

HTML:

           <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="222" height="174" id="Client" align="middle">
                <param name="movie" value="Client.swf?v=1.1" />
                <param name="quality" value="high" />
                <param name="bgcolor" value="#2B2B2B" />
                <param name="play" value="true" />
                <param name="loop" value="true" />
                <param name="wmode" value="window" />
                <param name="scale" value="showall" />
                <param name="menu" value="true" />
                <param name="devicefont" value="false" />
                <param name="salign" value="" />
                <param name="allowScriptAccess" value="always" />
                <!--[if !IE]>-->
                <object type="application/x-shockwave-flash" data="Client.swf" width="222" height="174">
                    <param name="movie" value="Client.swf?v=1.1" />
                    <param name="quality" value="high" />
                    <param name="bgcolor" value="#2B2B2B" />
                    <param name="play" value="true" />
                    <param name="loop" value="true" />
                    <param name="wmode" value="window" />
                    <param name="scale" value="showall" />
                    <param name="menu" value="true" />
                    <param name="devicefont" value="false" />
                    <param name="salign" value="" />
                    <param name="allowScriptAccess" value="always" />
                <!--<![endif]-->
                    <a href="http://www.adobe.com/go/getflash">
                        <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
                    </a>
                <!--[if !IE]>-->
                </object>
                <!--<![endif]-->
            </object>

最佳答案

我认为通过使用 document.getElementById() 可以简化(并且可能修复)查找 Flash 对象的代码。

function thisMovie( movieName ) {
    return document.getElementById( movieName );
}

关于JavaScript 调用 AS3 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9019971/

相关文章:

javascript - jquery内容 slider ,如何在没有冗余代码的情况下进行复制

arrays - AS3 中函数内定义的数组是否会在函数末尾被丢弃?

android - 为什么在针对 Android 时我的 TextField 在屏幕上这么小?

java - 具有优先级的 sortOn 函数

flash - AS3 词典问题

javascript - 使用 Canvas 从页面抓取像素数据

javascript - ajax成功后重试没有.done

javascript - 如何像这个 Flash 示例一样制作 Javascript 左菜单/面板 slider ?

Flash AS3 动态添加子项。命名它们并分别调用它们的问题

actionscript-3 - 无法使用 "continue <label>"