SCORM课件修改方法

1,  首先要修改imsmanifest.xml的版本号

这里可以将课件Quiznew2004.zip下面的imsmanifest.xml的schema粘帖过来。

2.修改config.js(最好这样,防止出现问题)

var nFindAPITries = 0;

var maxTries = 500;

var APIVersion = "";

var API = ScanForAPI(window);

移到最前端

3.修改config.js下面的onSCOExit(sessionTime)方法。

添加拿到当前课件完成状态功能:

var completionStatus =getAPI().GetValue('cmi.completion_status');

否则,这里的判断

         if(completionStatus!= "completed") {

                   completionStatus= 'incomplete';

                   getAPI().SetValue('cmi.completion_status',completionStatus);

         }

因为这里全局变量默认completionStatus=””,而这里没有取值,就会始终将课件状态设定为未完成。

4. config里面在方法退出的时候,需要进行function onSCOExit(sessionTime)下面的getAPI().SetValue('cmi.exit','normal');的判断就可以了(猜测)

在退出方法的时候添加,状态的获取:

varcompletionStatus = getAPI().GetValue('cmi.completion_status');

 

5.在cdrom.js

下面添加getMainFrame方法。

var mainfr = null;

function getMainFrame(){

   if(mainfr == null){

       if(parent.mainFrame) mainfr = parent.mainFrame

                   elseif(opener.parent.mainFrame) mainfr = opener.parent.mainFrame;

                   elseif(opener.opener.parent.mainFrame) mainfr = opener.opener.parent.mainFrame;

    }

   return mainfr;

}

6.在cdrom.js

window.onload =      function(event)下添加

 if(getMainFrame().document.getElementsByName("right")[0] ==undefined){

       completionStatus = 'completed';

       //这里通过getTopFrame拿到getAPI()去进行状态的设定

       getTopFrame().getAPI().SetValue('cmi.completion_status',completionStatus);

}

判断课件是否完成功能。

你可能感兴趣的:(function,schema,api,null)