【问题标题】:External Interface in Flash Actionscript 2 working on one site, but not anotherFlash Actionscript 2 中的外部接口在一个站点上工作,但在另一个站点上不工作
【发布时间】:2014-09-28 17:39:15
【问题描述】:

我正在使用 externalinterface.addcallback 从 HTML 页面访问 Actionscript 并返回一个变量。 这是我正在使用的主要代码

// Gives access to key functionality provided by an external Javascript interface
import flash.external.*;

function disableInput()
{
    barrier._visible = true;
}

// sends score back to Claroline
function getGrade()
{
    grade = 0;
    for (i = 1; i <= 5; i++)
    {
        if (_root["unsafeAct" + i].score != undefined)
        {
            grade += _root["unsafeAct" + i].score;
        }
    }
    for (i = 1; i <= 5; i++)
    {
        if (_root["unsafeCon" + i].score != undefined)
        {
            grade += _root["unsafeCon" + i].score;
        }
    }
    trace(grade);
    return (grade);
}

// Changes external interface exposure as this seems to cause issues
System.security.allowDomain("*");

// Maps the flash object API calls to the current SWF's equivalent function
ExternalInterface.addCallback("CheckAnswers",this,checkAnswers);
ExternalInterface.addCallback("GetGrade",this,getGrade);
ExternalInterface.addCallback("SerializeAnswers",this,serializeAnswers);
ExternalInterface.addCallback("DeserializeAnswers",this,deserializeAnswers);
ExternalInterface.addCallback("EnableInput",this,enableInput);
ExternalInterface.addCallback("DisableInput",this,disableInput);

我无法访问 HTML 和 Javascript,因为它们是由 Claroline LMS 生成的。我正在为 Flash Player 9 和 Actionscript 2 发布。

外部接口代码取自工作练习,在 Dreamweaver 中运行良好,但在 Claroline 中无法运行。

我推测存在某种安全问题,可能与较新版本的 Flash 播放器有关,但我找不到任何相关信息。

如果有人对此有任何想法,那就太好了。

非常感谢

查理

【问题讨论】:

    标签: javascript actionscript-2 flash externalinterface


    【解决方案1】:

    我最近遇到了类似的问题。我在时间线上打了一个电话到ExternalInterface,这永远不会触发。为我解决的问题是将 ExternalInterface 调用嵌套在另一个函数中,然后改为调用该函数:

    不工作:

    ExternalInterface.call("unlockPage","");
    

    有效:

    function unlockPage(){
        ExternalInterface.call("unlockPage","");
    }
    
    unlockPage();
    

    希望这对你有用!

    【讨论】:

    • 哇这个问题真老了:)
    猜你喜欢
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 2012-02-07
    相关资源
    最近更新 更多