The EnterPage 12-01
March 19, 2009

In this issue:

Exam Engine Version 3 Uses Silverlight to Add Matching, Drag & Drop, Sequencing, and Other Question Types

Sign Up Now for the 2009 ToolBook User's Conference / e-Learning Authoring Conference

Tim Barham, Dan Carr, Denny Dedmore, Tom Hall, and Jeff Rhodes Among Featured TBCON Faculty

Dan Carr, Tom Hall, Bill Hurley, Lee Jay Karns, Jeff Rhodes, and Dane Williams Offer Preconference Training

ToolBook Mini Lessons Available

Plug-In Pro Spotlight - Edit Object Actions

Expert Information from the Learning & Mastering ToolBook Series

OpenScript Tip from the Learning & Mastering ToolBook Series

Web Hint from the Learning & Mastering ToolBook Series

Flash ActionScript Tip

VBTrain.Net Nugget



Introduction

We've been "heads down" for months working on our new Exam Engine release. We hope you like the results and encourage you to take a look at the samples and evaluation versions. We've also been working to line up the faculty and sessions for the eleventh version of TBCON. We expect a lower turnout this year with the state of the economy, which means that you will get even more opportunities to enhance your skills and get personal assistance in ToolBook, Flash, and other technologies. In this newsletter, we include all the links and information you need to convince your boss that you need to attend. We also have the great tips and tricks on ToolBook, Flash, and .NET that you've come to expect over the twelve years that we've been sending out this newsletter.



Exam Engine Version 3 Uses Silverlight to Add Matching, Drag & Drop, Sequencing, and Other Question Types

Exam Engine version 3 uses Microsoft® Silverlight™ to create database-driven, SCORM-conformant exams without any programming. It now includes matching, "matching lines," sequencing, numeric, and more question types. Add or edit XML-based question templates using Microsoft Expression Blend™. You can pull questions randomly by objective, email results to a manager, store question results in Access, SQL Server, or XML, use the optional Reporter program to view reports on question and exam data, include media with questions, easily update questions and objectives, and much more. Version 3 adds question templates, up to four graphics and media per question, the ability to deploy without a virtual directory, and optional web service for storing/emailing question data, an optional Reporter program, transitions, and much more.

Pricing is $1,995 per development license. This includes templates, source, web service, and three copies of the Exam Engine Question Editor as well as the ability to deploy an unlimited number of exams. Additional licenses of the Question Editor are available for just $295. The optional Exam Engine Reporter application is separately priced at $495 per user.

Information

Sample Exam

Configuration Editor Help

Question Editor Help

Reporter Help

Templates Documentation (PDF)

Online Store

Evaluation Downloads

Sign Up Now for the 2009 ToolBook User's Conference / e-Learning Authoring Conference

Here are just a few of the many comments that we received from TBCON 2008:

Without a doubt the best bang for the buck of any conference I have ever attended.

I loved it all!! Excellent sessions, nice people, good food. Very well organized!!!

I just wanted to drop a note and say how much I enjoyed the conference! I think one of the best parts of the conference was the opportunities to network and establish contacts with experienced ToolBook and Tracker.Net users.

Excellent, excellent! You folks make us feel like "royalty." Thank you very much!

You can see the whole list of attendee comments over the years on the web site.

Despite the challenges of an economic downturn and some frozen travel budgets, we'll be congregating once in again Colorado Springs in early August. We'll have another great lineup of 18 one-hour session blocks over three days, with each block containing four sessions to choose from. We will be repeating many sessions twice so that you are not stuck with multiple "must attend" sessions in a single block. Sessions will be grouped into these subject areas: Flash/Silverlight, Management, ToolBook (Intermediate/Advanced), ToolBook (Introduction), and Web Technologies. There are many sessions for beginners, so don't feel like you need to be an experienced developer.

If that isn't enough, we have an excellent lineup of preconference workshops as discussed later in this newsletter. In addition to all the scheduled learning, there will be some great receptions, the always popular "Hack Ack" contest (with the topic to be announced a week before the conference to allow even cooler entries), the Help Desk where you can get answers to your individual questions, and the ability to meet with SumTotal's Brad Crain (Vice President, ToolBook) and Sheri Miller (Global Sales Director, ToolBook). We hope you can make it!

Dates

August 3 - 5, 2009
Preconference Training August 1 - 2, 2009

Rates (Based on Your Choice of Lodging)
  • Off Campus ($780)
  • Loomis Double ($855)
  • Loomis Single ($925)
  • CC Inn Single ($975)
  • Apartment Multiple Occupancy ($975)
  • Apartment Single ($1,175)
All options include three meals per day plus snacks. All except "Off Campus" include lodging as well.

Preconference Training (Does Not Include Lodging)

  • One Preconference Session ($150)
  • Two Preconference Sessions ($285)
  • Three Preconference Sessions ($420)
  • Four Preconference Sessions ($555)
Registration

Rates

Sessions

Faculty

Preconference


Tim Barham, Dan Carr, Denny Dedmore, Tom Hall, and Jeff Rhodes Among Featured TBCON Faculty

We'll be once again flying Tim Barham, ToolBook Development Manager, from Brisbane, Australia to Colorado Springs for TBCON. This is your chance to meet and trade ideas with the force behind SmartStyles, the Actions Editor, Simulations, and more. Tim will also be showing "What's New" with the latest ToolBook release.

Dan Carr, who we've affectionately named "Mr. Flash," will again travel from Northern California and share his expertise on Flash user interfaces, video, and creating Flash animations. Dan is the creator of the Flash Learning Interactions and a leader in the Flash community.

Another popular TBCON faculty member is SumTotal's Senior Customer Support Engineer, Denny Dedmore. In addition to sharing his many years of ToolBook development and support experience, Denny is quick to meet with you to solve any ToolBook issues or questions as part of the conference Help Desk. Denny has his usual long list of ToolBook sessions, including how to communicate with an LMS, how to create assessments, and how to play Flash and other media types in ToolBook.

Expanding on his books and sharing expertise gleaned from years of consulting and training, Tom Hall is returning to share his insights on SmartStyles, Simulations, iPhone applications, and the Actions Editor.

Jeff Rhodes of Platte Canyon just camps out in a classroom and shares tips on ToolBook, Flash, Silverlight, programming, databases, Exam Engine, Training Studio, Tracker.Net, running an e-Learning company, and more.

This is just a sample of our excellent faculty. Please check out the link below to see the entire faculty (as well as one or two more to be added).

Faculty


Dan Carr, Tom Hall, Bill Hurley, Lee Jay Karns, Jeff Rhodes, and Dane Williams Offer Preconference Training

In addition to rapid-fire sessions for all skill levels, great networking, the Help Desk, etc., TBCON is also an excellent opportunity to receive in-depth training at the preconference sessions. On Saturday, Tom Hall will show you the "ins and outs" of ToolBook Actions Editor and how to create simulations. Also on Saturday, Dane Williams will teach you from the ground up how to build e-Learning in Flash. Jeff Rhodes will cover beginning and intermediate programming on Saturday and then dive into Training Studio and Exam Engine on Sunday. Lee Jay Karns will get beginning ToolBook developers up-to-speed on Sunday morning. Bill Hurley will then take over on Sunday afternoon and show both new and seasoned developers rapid development tips in ToolBook. Last but not least, Dan Carr will dive into Flash CS4 and show you how to build animations, incorporate video, and create a great user interface. Here is the complete lineup:

Saturday, August 1, 2009: 8 AM - Noon

Flash for Beginners - Dane Williams, Buckman Laboratories
Programming 101 for e-Learning Developers - Jeff Rhodes, Platte Canyon Multimedia Software Corporation
Using the ToolBook Instructor Actions Editor - Tom Hall

Saturday, August 1, 2009: 1 - 5 PM

A Detailed Look at Creating Simulations in ToolBook Instructor - Tom Hall
e-Learning with Flash - Dane Williams, Buckman Laboratories
Programming 101 for e-Learning Developers - Jeff Rhodes, Platte Canyon Multimedia Software Corporation

Sunday, August 2, 2009: 8 AM - Noon

Creating e-Learning with Training Studio - Jeff Rhodes, Platte Canyon Multimedia Software Corporation
ToolBook for the True Beginner - Lee Jay Karns, Vertical View Software Associates

Sunday, August 2, 2009: 1 - 5 PM

Creating Animations, Video, and a Complete Interface in Flash - Dan Carr
Creating Online Tests with Exam Engine - Jeff Rhodes, Platte Canyon Multimedia Software Corporation
Rapid Development Tricks with ToolBook: Templates, Smart Styles, Importing from PowerPoint, and Best Practices - Bill Hurley, American Signature Inc.

Preconference Workshops

Rates

ToolBook Mini Lessons Available 

Denny and company in ToolBook technical support have created a great set of short learning nuggets to help ToolBook users of all levels. There are lessons on Assessments, the Book Explorer, the Catalog, working with an LMS, playing media, Neuron, programming, and more. There also great "Cheat Sheets."

ToolBook Mini Lessons

Plug-In Pro Spotlight - Edit Object Actions 

We were doing a Plug-In Pro webinar recently and one of the first tools we demonstrated was the Edit Object Actions tool. Once the potential customer saw the time that could be saved just by quickly finding out which objects had actions (and for which events) and then easily editing those actions, all the other 150+ tools in the Plug-In Pro were just gravy.

When you select the Edit Object Actions tool, you get a list of all objects on the page with Actions. Click on the object name and see a list of all its handled events on the right. Double click on any of these and up pops the Actions Editor with that object and event already loaded. It is that simple (and quick)!

To learn more, you can follow these links:

Help topic

Plug-In Pro web page

Expert Information from the Learning & Mastering ToolBook Series 

By Jeff Rhodes, Platte Canyon Multimedia Software Corporation

Insert Pages Instead of Repair Kit

I had a scary corruption experience on Learning & Mastering ToolBook Instructor 9.5, with a happy ending luckily. While normally the Repair Kit is sufficient, I thought I'd pass this additional technique along as well. Module 2 of this training is massive: 495 pages and 1300+ bitmap resources. I was bouncing back between it and another module making fairly minor changes when I got an error on a regular save. I was then unable to do a Save As (optimized) without crashing ToolBook. I tried the Repair Kit but it locked up, perhaps due to the huge number of bitmap resources. I tried both a "Save As" and the Repair Kit on another machine and after a reboot, but still no luck. However, I could open the original book without problems (though I would get a message that the last Save had been interrupted).

My next tactic was to open a blank book and insert the pages from the problem book. I found I could insert the whole book, but then trying to save as (optimized) to a new name would give an error and crash ToolBook. So I used the classic "split" technique to try inserting the first half of the pages [via the Format button on the Import dialog for those who have not done this] (error), the first half of that [1 - 123] (no error), the second half of that (124 - 247) (error), the first half of what was left (125 - 185) (error), and so forth. It was only about 10 minutes to narrow down the problem page (165). The good news is that from there I was able to go back to the original book, delete that page, and then Save As (optimized) with no errors. I then inserted that page from an older backup copy. This technique is similar to omitting pages from the repair utility but quite a bit faster for a big book.



OpenScript Tip from the Learning & Mastering ToolBook Series

By Peter Jackson, ToolBookDeveloper.com

Randomizing Only Some Question Pages

Question: I have a rather large book that includes a randomized quiz which I wish to draw 10 questions from. I have to now go through many other "study guide" pages, select the question object, and use the command window to set "NotInQuiz of selection = true." Sure would be nice to have access to a LiveXtension tool that would carry out this task automatically. Would anyone have any idea of the cost involved?

Answer: As the questions in your quiz are at the end of the book you can use the OpenScript code below. Add the OpenScript shown to the left to a button. Ensure that you enter a page number that is less than the quiz pages.

to handle buttonClick
	local object pageObj, qObj
	local int pNum, pCnt, qNum, qCnt
	
	forward
	pCnt = pageCount of this book
	ask "Enter the last page number:" with pCnt
	if not isNumber(it) or it > pCnt as number
		break buttonClick
	end if
	pCnt = it
	step pNum from 1 to pCnt
		pageObj = page pNum of this book
		qObjs = getObjectList(pageObj, "","ASYM_WID_QType")
		qCnt = itemCount(qObjs)
		step qNum from 1 to qCnt
		    qObj = item qNum of qObjs
		    NotInQuiz of qObj = true
		    ASYM_WID_IsScored of qObj= false
		end step
	end step
end buttonClick

Now add the button to the Catalog, see kb.sumtotalsystems.com/community_kb_tb_display.asp?id=Q119455466800041.


Web Hint from the Learning & Mastering ToolBook Series

By Jeff Rhodes, Platte Canyon Multimedia Software Corporation

Playing and Stopping Media in a Separate Browser Window

Question: I have created an .htm page that has a Windows Media Player built in it. When placed in a ToolBook course, I use the FILE placeholder to launch the page. My problem is if when I call a video that has audio with it. If you leave the page to continue before the video quits playing, the audio can still be heard on any page after the page with the video. I have been unable to find a way to stop the video from playing when leaving the page. Can anyone help with this?

Answer: One approach that comes to mind is to use a .js file and the Actions Editor to launch the file. You can then use the Actions Editor to close the window. That would stop the video playing. Here is some code that you would put in an external .js file and then call from the Actions Editor.

function tbfunction_showWindow(url) {
	var winId = window.open(url, 'URL', openWindowString); 
}

function tbfunction_closeWindow() {
	var winId = window.open('', 'URL');

	if (winId != null) {
		winId.close();
	}
}


Flash ActionScript Tip

By Jeff Rhodes, Platte Canyon Multimedia Software Corporation

Flash Bullets and Loops

One of our Training Studio customers wanted to change the way that the popup "Menu" screen worked. By default, each page is shown as a hyperlink in a bulleted list. The student can click on the page title to go that page. It looks something like this.

  • Introduction
  • Concept 1
  • Concept 2
The customer wanted to skip the bullets and add the page number instead, as in:

1. Introduction
2. Concept 1
3. Concept 2

This was pretty straightforward. Here is the relevant ActionScript for the Menu.fla movie.

if (menuString == "" || menuString == undefined) {
	// build string
	var stringBase:String = "<li><u><a href=\"asfunction:loadPage, ";
	var string2:String = "\">";
	var string3:String = "</a></u></li><br>";
	var contentArray:Array = TSCommon.masterContentArray;
	var pgArray:Array;
	var numPages:Number = contentArray.length;

	menuString = "<font size='-1'>";
	for(var n = 0; n < numPages; n++) {
		pgArray = contentArray[n];
		menuString = menuString + stringBase + (n + 1) + string2 + 
		    pgArray["title"].toString() + string3;
	}
	menuString = menuString + "</font>";
	TSCommon.menuText = menuString;
}

objectiveMenuId.htmlText = menuString;

The code above builds and HTML bulleted list and sets the href of the anchor tag to be the loadPage ActionScript function. We loop through the masterContentArray array variable to load the title of each page. To meet the customer's needs, we needed to remove the bulleted list and insert the page number as in the code below.

if (menuString == "" || menuString == undefined) {
	// build string
	var stringBase:String = "<u><a href=\"asfunction:loadPage, ";
	var string2:String = "\">";
	var string3:String = "</a></u><br>";
	var contentArray:Array = TSCommon.masterContentArray;
	var pgArray:Array;
	var numPages:Number = contentArray.length;

	menuString = "<font size='-1'>";
	for(var n = 0; n < numPages; n++) {
		pgArray = contentArray[n];
		menuString = menuString + stringBase + (n + 1) + string2 + 
			(n + 1) + ". " + pgArray["title"].toString() + string3;
	}
	menuString = menuString + "</font>";
	TSCommon.menuText = menuString;
}

objectiveMenuId.htmlText = menuString;

Notice that (n + 1) is the page number as the array is zero-based.

VBTrain.Net Nugget

By Jeff Rhodes, Platte Canyon Multimedia Software Corporation

Using Linq (Language Integrated Query)

One of the most celebrated features of Visual Basic 9.0 and C# 3.0 is Linq (Language Integrated Query). You can read the complete definition on Wikipedia, but the gist is that you can do queries of databases, object collections, arrays, and more right from .NET. I hadn't had much opportunity to use Linq before creating the new Exam Engine Question Editor. One of the new features of that program is the ability to create such reports as Questions By Objective and Objectives By Question. We have a DataSet with the complete Questions, Objectives, and QuestionObjectiveAssignments tables. But prior to Linq, there was no way to perform joins of these tables, which are needed for these reports. This was a good opportunity to try Linq. Here is the resulting code.

' Build join via Linq
Dim objectivesTableId As DataTable = qDataSet.Tables("Objectives")
Dim questionsTableId As DataTable = qDataSet.Tables("Questions")
Dim assignmentsTableId As DataTable = qDataSet.Tables("QuestionObjectiveAssignments")

If reportValue = "QuestionsByObjective" Then
    Dim query = (From objective In objectivesTableId.AsEnumerable Join assignment In _
        assignmentsTableId.AsEnumerable On objective!ObjectiveId Equals assignment!ObjectiveId _
        Join question In questionsTableId.AsEnumerable On question!QuestionId Equals _
        assignment!QuestionId Order By objective!ObjectiveNumber Select objective!ObjectiveId, _
        objective!ObjectiveNumber, objective!ObjectiveName, question!QuestionText, question!templateType)

    If query IsNot Nothing Then
	    tableId = query.CopyToDataTable()
    End If
End if

We start by referencing our individual tables: objectivesTableId, questionsTableId, and assignmentsTableId. We then use the Linq syntax to build an "anonymous type" (query) with the result. We later convert query into the DataTable we use in the report. But first we do a join on the tables followed by a Select statement pulling the columns we want from the tables. Those of you familiar with SQL will notice some similarities with that to Linq, but the key is that Linq is done in VB or C# rather than in a database.



The EnterPage is distributed up to four times per year, with occasional special issues. Individuals who have expressed interest in Platte Canyon Multimedia Software Corporation or its products receive The EnterPage. Suggestions for articles or proposals for article submissions are welcome. Send information to ep@plattecanyon.com. Back issues of the EnterPage are available at:

http://www.plattecanyon.com/enterpage.aspx

Platte Canyon Multimedia Software Corporation, 8870 Edgefield Drive, Colorado Springs, CO 80920, (719) 548-1110