【发布时间】: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