July 29th, 2010
In one of our authoring tool projects, we need to launch the newest version of Expression Web on the author’s computer. When an author had ExpressionWeb 3 and 4 installed on the computer, our code was always launching Expression Web version 3 instead of version 4. The problem was not in our code – the problem was in the registry settings created by the Expression 4 installation. The installation of Expression Web 4 leaves does not update the registry setting responsible for launching the application by its name (ExpressionWeb.exe). You can change the registry setting by creating a .reg file (see contents below) and then launching that .reg file.
The first line of the .reg file must contain Windows Registry Editor Version 5.00. Save the .reg file as a Unicode file using notepad.
Here are the contents of the .reg file:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ExpressionWeb.exe]
@=”C:\\Program Files (x86)\\Microsoft Expression\\Web 4\\ExpressionWeb.exe”
“Path”=”C:\\Program Files (x86)\\Microsoft Expression\\Web 4\\”
Posted in Authoring Tools, HTML/JavaScript | No Comments »
May 18th, 2010
We have been doing quite a bit of work with Silverlight recently. I was working on a list of questions for a Silverlight-based test. The list of questions was placed into a Silverlight ListBox control. I needed to automatically scroll to the selected question within the ListBox. This seemed like a very easy thing to do because the Silverlight ListBox control have a ScrollIntoView() method. I called the method and nothing happened – very frustrating.
I searched the web to look for an answer – I found many people were experiencing the same problem. Here was the source of my problem – I had included the ListBox control inside a ScrollViewer control – I put the ListBox inside the ScrollViewer control because I thought the ListBox itself could not scroll. Once I removed the ScrollViewer control surrounding the ListBox, the call to the ScrollIntoView() worked just fine.
Posted in Authoring Tools, Silverlight | Comments Off
March 30th, 2010
One of the common limitations of authoring tools is the functionality of questions, quizzes and tests. In our new e-Learning Authoring Tool we tried to provide a broad range of features while making it easy to create quizzes and tests. We let the author create one or pages in a course that contain individual questions, a quiz and a test. The quizzes and tests use one or more question pools and provide randomization over the question order and possible answers for each question. The individual question pages and quiz pages provide immediate feedback. The test pages provide delayed feedback shown after the learner submits the test for a grade. Here is a YouTube video showing our question, quiz and test features. We’d love to get your feedback on the question, quiz and test features. You can download a free trial of the authoring tool to see exactly how it works.
Posted in Authoring Tools, SCORM | Comments Off
March 11th, 2010
One of the common questions I get is, “What is the best format for audio and video?” I wish there was a perfect answer for every situation. The best answer usually depends on the target audience and the servers used to deliver the audio and video. If the target audience only uses Windows computers, then selecting Windows media is a good choice. If the target audience will use different platforms and browsers, then it is best to pick either Flash audio and video or MPEG for video and MP3 for audio. When considered the need for different types of audio and video when we created our new e-Learning Authoring Tool. We decided to support all of these video formats and we decided to support audio and video delivered form the web server (progressive media) and from streaming media servers. This video on YouTube shows the audio and video features.
Posted in Authoring Tools, Flash/ActionScript, Video | Comments Off
March 3rd, 2010
It seems like everyone wants a different look for navigation buttons used in a course. Usually authors have to turn to a graphic artist to create these buttons. If you do not have immediate access to a graphic artist, you can use one of the sites that creates buttons for you for free – here is a good choice – http://cooltext.com/
Posted in Uncategorized | Comments Off
February 27th, 2010
One of the biggest challenges in creating a good e-Learning Authoring Tool is to create a user interface that is both easy to use for new authors and efficient for experienced authors. You can see a demonstration of our e-Learning Authoring Tool user interface on YouTube. In the demo, you can see the authoring tool makes it easy to construct the structure of the course. The structure of the course is a hierarchy of individual pages that provide the instructional interactions. The built-in interactions include information pages (HTML pages), questions, quizzes, tests and a summary page. The user interface provides a built-in HTML editor for the information pages. There are also built-in editors for the questions, quizzes, tests and summary page. You comments are welcome – are there ways we can improve the user interface?
Posted in Authoring Tools | Comments Off
February 25th, 2010
We have been working on a new e-Learning Authoring Tool for quite a while. Our goal was to create a tool that makes it very easy to create the most common types of courses and also allowing power-authors to extend to tool to create all types of courses. You can learn more about the new tool at the e-Learning Authoring Tool product page.
Our goal with the authoring tool was to provide all of the features you would expect in a clean, easy to use interface. The features include information pages, questions, quizzes and tests. The information pages are created with a built-in HTML editor so your course can contain all of the elements from a good web site including rich text, multimedia, tables and more. There are also built-in editors for questions, quizzes and tests.
We very interested in your feedback on this new authoring tool. Please comment in the blog or send us your comments by email.
Posted in Authoring Tools, Flash/ActionScript, HTML/JavaScript | Comments Off
November 21st, 2008
Articulate recently shipped a new version of its QuizMaker product. The new version sent non-ASCII data to the LMS (for example our столовеLearning Management System) for SCORM 1.2 communications. This was a problem for most LMSs so Articulate quickly offered a free update to their software.
Posted in Authoring Tools, LMS, SCORM | Comments Off
November 1st, 2008
Articulate presenter is a popular course authoring tool for the people who use our Learning Management System (LMS) Hosting Service. Learners who use the 10.0 version of the Flash plug-in will not be able to view the content within an Articulate course. Articulate released a program to patch existing courses. The patch program is easy to use and works nicely to fix the problem.
Posted in Flash/ActionScript | Comments Off
October 1st, 2008
Our Flash Course Development Toolkit uses a JavaScript function to insert the Flash movie into the HTML page. This function is currently set to center the Flash movie in the HTML page. You can pass the salign:”L” parameter to left-align the movie:
var FO = { movie:”player.swf”, width:”100%”, height:”100%”, salign:”L”, majorversion:”8″, build:”0″, id:”ufoCom”, name:”ufoCom”, swliveconnect:”true”, allowscriptaccess:”always”, setcontainercss:”true” };
Posted in Flash/ActionScript, HTML/JavaScript | Comments Off
August 14th, 2008
LETSI is a new organization working on the future of SCORM. LETSI had a call for white papers that asked members of the e-learning community for the best ideas for a future version of SCORM called SCORM 2.0. I submitted a paper called SCO 2.0: The Lucas Proposal – SCO-based Sequencing. The white paper proposes that we eliminate simple sequencing and replace it with SCO-based sequencing.
Simple sequencing sound simple but its not. Simple sequencing is the SCORM 2004 way to define how a learners interaction will the SCOs in the course will affect navigation, completion, success (pass/fail) and the score of the course. Simple sequencing is described in a 250 page specification. The specification is a tough read and it is difficult for most developers to use to create real courses.
I am proposing a much simpler solution called SCO-based sequencing. The LMS launches just one SCO for a course. That SCO can launch child SCOs if needed. The parent provides a SCORM runtime API to the child SCOs so it can receive all of the information provided by the child. For example, the child tells the parent that the learner has completed the SCO with a passing score of 90. The parent SCO can use the information provided by the child to make sequencing decisions.
SCO-based sequencing allows a course to be in full control over its user interface. Course developers will not have to worry how their multi-SCO will look and behave in different LMSs. Learners will not be confused by 2 sets of navigation (one provided within a SCO and another by the LMS).
SCO-based sequencing has other advantages. It allows a multi-SCO course to be developed in other web languages such Flash and Silverlight.
Please post comments to the white paper on the LETSI web site.
Posted in Flash/ActionScript, HTML/JavaScript, SCORM | Comments Off
May 16th, 2008
Microsoft has released a patch for Internet Explorer that eliminates the click to activate message that you used to get when you clicked on an ActiveX control (examples: Flash and Windows media). The patch has been available for several months so it all of that ActiveX insertion code can finally go the way of the dinosaur.
Posted in Flash/ActionScript, HTML/JavaScript | Comments Off
October 13th, 2007
Philip Dodds passed away last week. I enjoyed working with Philip over the years. I first met Philip many years ago when he founded Visage a company that made products for Interactive video. I worked with Philip from time to time while he worked to create SCORM. Philip was such a delightful person to know. I will miss him.
Posted in Uncategorized | Comments Off
August 17th, 2007
I have a table-of-contents in a course. The table of contents is a <div> that contains other <div>s. The table of contents can have so many items that it requires scrolling. I also have previous/next buttons that can switch from one item in the table-of-contents to the next. I had to make sure the current-item is always scrolled into view.
The first part of this solution is to find the Y position of an item within the table of contents. I found a great public-domain function from firetree (the original code is from quirksmode).
Now, I had to write the scrolling code:
// get the id of the TOC container
var oSections = document.getElementById(‘tocContainer’);
// get the y position of the TOC section container
var nSectionsY = findPosY(oSections);
// get the y position of the selected item
var nItemY = findPosY(document.getElementById(sItem));
// adjust the item height to be in the coordinate space of the container
nItemY -= nSectionsY;
// get the height of the container and pull off the “px” part on the end
var nHeight = parseInt(oSections.style.height);
// see if the complete item is greater than the height of the container
if ((nItemY+21) > nHeight) {
// it is, scroll the selected page into view
oSections.scrollTop = nItemY;
} else {
// see if the item is showing given the current scroll position
if (oSections.scrollTop > nItemY) {
// it is not, scroll the item into view
oSections.scrollTop = nItemY;
}
Posted in HTML/JavaScript | Comments Off
January 15th, 2007
Flash 8 provides a set of components that make it easy to create interactivity in an e-learning course (the newer set of components in Flash are the version 2 or V2 components). One of the things you will need to know to use V2 components is the way Flash loads components and when ActionScript is called from listeners and frames. Here is a scenario that will give you an insight on the use of components in a course:
Scenario: Your course provides “next” and “previous” buttons that let the learner move forward and backward in the course. In Flash, you would have listener functions that process the click events for the ”next” and “previous” buttons. In the listener function for the “next” button you may want to load another part of the user interface in the course (for example, you may want to load a multiple choice question). A good way to load the user interface is to call gotoAndStop(name-of-frame). This frame would contain the components that present a multiple choice question to the learner.
To make sure your course works correctly you should NOT set or get any of the properties of the components immediately after your call to the gotoAndStop() function. However, your components are not fully loaded until the frame with those components is loaded. So, if you need to get or set properties on those components you should do so in code executed from the loaded frame. You should not get or set the properties inside the listener of your “next” button.
Posted in Flash/ActionScript | Comments Off
January 15th, 2007
Windows XP SP2 and Windows Vista will not let you run JavaScript from your local hard drive or CD-ROM. This restriction can make it difficult to distribute interactive web pages for use on a local computer. When you launch a HTML page with JavaScript on your computer, Internet Explorer 6 and 7 will tell you that the page contains Active Content. You have to authorize the page to run “Active Content” each time it is loaded or you have to change the default settings in “Internet Options…”
Microsoft has provided a work around for this problem. The HTML author can add the “Mark of the Web” (MOTW) to each HTML document. The MOTW is a comment line included in the HTML code. Here is a sample:
<!-- saved from url=(0014)about:internet -->
Posted in HTML/JavaScript | Comments Off
January 4th, 2007
Here is the general way to create a SCO using a HTML frameset.
Your frameset will contain some or all of the code for your SCO. Your frameset will have the code to get and set the bookmark. Your frameset can also have the code to set the completion status, success status, score and other SCORM data items. Your frameset will contain at least one frame. You will display the content (HTML pages) of your SCO in a frame.
The frameset will initially display a blank page when it is loaded. Your frameset displays a blank page because it has to find out if this is the first time the learner has launched the SCO. If this is the first time the SCO is launched, the frameset will load the first page in the SCO into the frame. If the SCO has been launched at least once, your frameset will get the bookmark (previously saved by your SCO) and then use that bookmark to load the correct page.
In a SCORM 2004 SCO, your frameset can save the bookmark information in cmi.location or cmi.suspend_data. In a SCORM 1.2 SCO, your frameset can save the bookmark information in cmi.core.lesson_location or cmi.suspend_data. You will decide what kind of information to store in the bookmark. For example, you could store the name of the file that was previously viewed by the learner. You could also store a number that could be an index to an array of pages that you load when the SCO is launched.
We have created an e-learning toolkit that uses a frameset to manage bookmarks within a SCO. The toolkit comes with source code that you can use “as is” or modify to meet your specific needs.
Posted in HTML/JavaScript, SCORM | Comments Off
November 12th, 2006
SCORM 2004 lets you create a course with multiple SCOs. However, many people prefer to create a their courses with a single SCO. One advantage of creating a course with a single SCO is that you do not have to spend much time learning how SCORM 2004 sequencing and navigation rules work. Unfortunately, your single-SCO course still gets the default sequencing and navigation rules if you like it or not. The defaults are usually not what you want so here is a tiny bit of SCORM manifest code that you may want to use in your single-SCO course. I’ll show the code first and then explain how it works.
<organizations default=”crs_hello”>
<organization identifier=”crs_hello”>
<title&rt;Hello World Course</title>
<item identifier=”sco_hello” identifierref=”sco_hello_ref”>
<title>Hello World SCO</title>
</item>
<imsss:sequencing>
<imsss:controlMode choiceExit=”true” flow=”true” />
<imsss:deliveryControls completionSetByContent=”true” objectiveSetByContent=”true” />
</imsss:sequencing>
</organization>
</organizations>
The <organizations> section defines a course with a single activity. The activity is linked to a SCO with the identifierref = “sco_hello_ref” (this SCO is defined in the <resources> section not shown in this example). The course has some sequencing rules shown in bold type. Here are the rules:
- choiceExit = true – this means the learner can exit from the activity. This is not really needed here because there is only one activity but a good thing to have if you will add more SCOs to this course
- flow = true – this tells the LMS to flow automatically navigate to the first SCO in the course. This means that the learner will not have to take some action to launch the SCO.
- completionSetByContent = true – the SCO will tell the LMS when it is complete by setting cmi.completion_status
- objectiveSetByContent = true – the SCO will tell the LMS the status of its primary objective by setting cmi.success_status.
Posted in SCORM | Comments Off
October 18th, 2006
I do quite a bit of course development with Flash. Flash 8 has some additional security. By default, it will not let you run content from your local hard drive that communicates between SWFs and JavaScript and between SWFs. This makes it seem like your course is suddenly broken. You can change thes default securlty settings of Flash with the Flash Settings Manager. You enable the communications by adding the folder to the list.
Posted in Flash/ActionScript | Comments Off
October 16th, 2006
I have been working with Active Directory today. I am writing some VBScript code that will automatically login a user to our Learning Management System using their Windows login managed by Active Directory. IÂ needed to find all of the groups that a user belongs to. The LMS uses these groups to make course assignments. I found some excellent code examples from Richard Mueller. The samples help you see that ADSI (the library used to access Active Directory and other things) uses two different methods to get the user’s primary group and other groups.
I ran into one problem when getting the list of groups with VBScript. The memberof function usually returns a collection. However, this collection will be empty if ther user does not belong to any groups. In VbScript, you need to use the IsNull() function to see if a collection is empty. All of the ADSI examples that I found on the web used IsEmpty() – a function that will work fine in VB but will not work correctly in VBScript.
Posted in LDAP, VBScript | Comments Off