gpt4 book ai didi

javascript - 如何从 javascript 调用 flash actionscript 回调方法?

转载 作者:数据小太阳 更新时间:2023-10-29 05:40:36 26 4
gpt4 key购买 nike

我试图从 JavaScript 调用 flash 回调方法。但它似乎不起作用。Flash ActionScript 示例代码如下[简化]:

import flash.events.ActivityEvent; 
import flash.events.StatusEvent;
import flash.external.ExternalInterface;

var test_var = ExternalInterface.addCallback("js_method_to_call", flash_method);


function flash_method()
{
return "test";
}

javascript示例代码如下[简化]:

 function callFlashMethod(){
var flashFile = eval("window.document.test");
flashFile.js_method_to_call;
}
function loadTest(){
swfobject.embedSWF("test.swf", "test", "1", "1", "10.0.0", false);
}

$(document).ready(function(){
loadTest();
callFlashMethod();
});

它总是在 fire bug 控制台中显示错误“flashFile.js_method_to_call 不是一个函数”。

最佳答案

这里有一些应该非常有用的东西:

  1. 使用 SWFObject.js 嵌入 Flash 内容:

    // Embedding through SWFObject rocks in comparison with Adobe shits:
    var flashvars = {};

    var params = {};
    params.menu = "false";
    params.salign = "t";
    params.scale = "noscale";
    params.wmode = "transparent";
    params.allowScriptAccess = "always";

    var attributes = {};
    attributes.id = "${swf}";

    swfobject.embedSWF("${swf}.swf", "flashDiv", "${width}", "${height}", "9.0.0", "", flashvars, params, attributes);
  2. 将此用于 HTML:

    <body>
    <div id="flashDiv"></div>
    </body>
  3. 要调用您的 Flash 方法,请使用此模式:

    // Functions needed for calling Flex ExternalInterface
    function thisMovie(movieName)
    {
    if (navigator.appName.indexOf("Microsoft") != -1)
    {
    return window[movieName];
    }
    else
    {
    return document[movieName];
    }
    }
  4. 调用Flash方法:

    function callFlashMethod()
    {
    thisMovie("${swf}").js_method_to_call();
    }

关于javascript - 如何从 javascript 调用 flash actionscript 回调方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7657842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com