如何在Flash(as3.0)文件中添加SCORM标准?

本教程详细讲解了如何在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和文件链接)。