ExternalInterface.call()
SWF 内から実行しようとしています。
_root
この呼び出しは、別の SWF (制御できない SWF) に埋め込んだ SWF 内から行われていることに注意してください。
ここに私のJavaScriptがあります:
function player_DoFSCommand(command, args)
{
args = String(args);
command = String(command);
var arrArgs = args.split(g_strDelim);
switch (command)
{
case "CC_ClosePlayer":
console.log("yo");
break;
default:
// alert(command);
break;
}
}
これが私のAS2コードです:
import flash.external.ExternalInterface;
var quiz = _root;
quiz.g_mcFrame.mcFinish.swapDepths(quiz.getNextHighestDepth());
quiz.g_mcFrame.mcFinish._visible = false;
quiz.oSlide.m_oInteraction.m_oVariableMgr.m_arrBoolResumeData = false;
var arrVars:Object = quiz.oSlide.m_oActionHandler.m_oFrame.m_oVariableMgr.m_arrVariables;
var args:Array = [
arrVars[2].m_nNumber, // Points awarded
arrVars[3].m_nNumber, // Max points
arrVars[5].m_nNumber, // Pass percentage
arrVars[6].m_nNumber, // Pass points
arrVars[7].m_nNumber, // Score percent
arrVars[10].m_strString // Result
];
ExternalInterface.call('player_DoFSCommand("CC_ClosePlayer", args)');
ExternalInterface.call('console.log("hello")');
問題はExternalInterface.call('player_DoFSCommand("CC_ClosePlayer", args)')
、機能しないか、少なくとも「yo」が期待どおりにコンソールに表示されないことです。
スクリプトは、ExternalInterface が呼び出されるまでに確実に読み込まれます。2 番目の呼び出しは機能し、コンソールに「hello」が表示されますが、最初の関数は起動しません。
コンソールに直接入力して機能が動作することを確認でき、player_DoFSCommand("CC_ClosePlayer", args)
正常にログに記録されます。