本教程详细讲解了如何在flash as3.0文件中,添加基本的SCORM功能。
重要提示:本教程使用ActionScript3和SCORM 1.2,但同样的原则适用于ActionScript 2和SCORM2004。
直接进入具体步骤:
1.在HTML文件的<head>标签中添加SCORM的javascriptAPI 类;
<scripttype="text/javascript"src="SCORM_API_wrapper.js"></script>
在Flash文件中使用import引入SCORM类;
import com.pipwerks.SCORM;
在flash中创建SCORM的实例;
a.我们先声明一些变量:
importfl.controls.Button;
importflash.events.MouseEvent;
importcom.pipwerks.SCORM;
var lessonStatus:String;
varlmsConnected:Boolean;
var success:Boolean;
b.接下来,我们需要使用pipwerks.SCORM类创建一个新的SCORM的实例,代码如下:
importfl.controls.Button;
importflash.events.MouseEvent;
importcom.pipwerks.SCORM;
varlessonStatus:String;
varlmsConnected:Boolean;
varsuccess:Boolean;
varscorm:SCORM = new SCORM();
课程完成前核对初始化SCORM的连接;
添加一个scorm.connect() call,返回一个布尔值,指示是否成功。
importfl.controls.Button;
importflash.events.MouseEvent;
importpipwerks.SCORM;
varlessonStatus:String;
varlmsConnected:Boolean;
var success:Boolean;
varscorm:SCORM = new SCORM();
lmsConnected = scorm.connect();
如果连接成功,lmsConnected则返回true,这意味着我们可以开始从LMS请求数据,从请求当前完成状态开始。
需要注意:如果课程的状态是“完成”(completed)或“通过”(passed),我们不需要保持LMS连接是激活的,我们需要小心不要覆盖之前完成的。所以,如果课程已经完成,我们会断开连接,并称之为一天。
如果完成状态没有“完成”(completed)或“通过”(passed),我们需要明确规定“未完全”(incomplete)的过程。代码如下:
importfl.controls.Button;
importflash.events.MouseEvent;
importpipwerks.SCORM;
varlessonStatus:String;
varlmsConnected:Boolean;
varsuccess:Boolean;
varscorm:SCORM = new SCORM();
lmsConnected= scorm.connect();
if(lmsConnected){
lessonStatus =scorm.get("cmi.core.lesson_status");
if(lessonStatus == "completed"){
//Course has already been completed.
scorm.disconnect();
} else {
//Must tell LMS course has not beencompleted yet.
success =scorm.set("cmi.core.lesson_status", "incomplete");
}
} else {
trace("Could not connect toLMS.");
}
添加SCORM完成的代码;
在我们的flash适当的位置来call完成代码,这个位置就是我们认为学习完成(结束)的位置。在本例中,当所有四个planets被访问时,我们将调用这个完成函数resetPlanets,代码如下:
functionresetPlanets():void {
if(visitedMercury&& visitedVenus && visitedEarth && visitedMars){
success =scorm.set("cmi.core.lesson_status", "completed");
scorm.disconnect();
lmsConnected = false;
gotoAndPlay("end");
} else {
//[ ... ]
}
发布Flash;
发布flash(一定要关掉“HTML”选项,因为我们使用我们自己的HTML文件)。因为本文代码为as3.0,所以请使用flash9及更高版本的flash进行发布。
修改清单文件。
所有符合SCORM标准的课程都需要有一个清单文件imsmanifest.xml,包含课程重要的元数据。对于本例,我们选取一个现成的简单的imsmanifest.xml清单文件为了我们的课程。
a.在文本编辑器中打开imsmanifest.xml清单文件;
b.更改清单元素的标识符属性(在文件顶部的顶部),以适合本课程(不许有空格):
identifier="MyPlanetsCourse"
c.在15行开始查找organizations元素(和organization子元素),修改“default”and“identifier”属性,以便适合我们的课程。我们将使用“pipwerks”。一定要避免空格和非法字符,如标点符号(除下划线“_”)。
d.在17行开始查找两个title元素,修改两者以便适合我们的课程。在本例中,把他们都改为“Planets!”。
e.你需要在resource节点中使用这个课程清单文件。对于本例,我们要确保“href”指向“index.html”,然后我们需要使用file元素来列出其他文件:
<resource identifier="SCO_Resource_01"type="webcontent" adlcp:scormtype="sco"href="index.html">
<file href="index.html"/>
<file href="planets.swf"/>
<file href="SCORM_API_wrapper.js"/>
<file href="swfobject.js"/>
</resource>
f.保存并关闭imsmanifest.xml文件。
总结:
正如大家所看到的,添加简单的SCORM的代码比许多人想象的更容易,总结起来就是三个步骤:
1.在HTML文件<head>标签中引入SCORMjavascript API文件;
2.在flash中添加一些actionscript脚本的变量和函数;
3.编辑imsmanifest.xml文件(编辑几个ID和文件链接)。