Introduction Lots is happening with this "Ides of September" version of The EnterPage Newsletter. ToolBook Instructor 9.5 is now shipping but SumTotal is giving you an extra week to get your support agreement in place to get this nice new version. We review 9.5 and explain all your upgrade options. "Learning & Mastering ToolBook Instructor 9.5" is ready to roll as well. But that's not even all the new releases. Our popular Tracker.Net Learning Management System (LMS) is now up to version 4. We explain all the new features. Add in a report about TBCON 2008 and our normal full load of ToolBook, Flash, and .NET tips, and you've got a jam-packed newsletter. |
ToolBook Instructor 9.5 Release and Pricing Information ToolBook Instructor 9.5 is now shipping. If you currently have a support or maintenance contract, you'll receive an email from SumTotal Systems with download instructions. If not, there is still time to get on the 9.5 bandwagon. We review this new release below, but suffice it to say that this is very nice version. The upgrade price from Instructor 9.0 to 9.5 is $1,595. If you are currently on 9.0 and don't already have a support or maintenance contract, you can still do so at the normal price of $995 for support or $795 for maintenance only. As long as you do this by September 19, 2008, you will receive 9.5 along with everyone else. This would be cheaper than buying the upgrade and give you updates for the next twelve months. If you are on an older version of Instructor, it is important to understand that SumTotal is no longer offering upgrades for customers more than one version back. So once ToolBook gets to version 9.5, users of 2004 or older versions will have to pay full price to get to the current version. A cheaper option would be to upgrade to 9.0 before the 19th of September ($1,545 from Platte Canyon) and get a support or maintenance contract at the same time. This will get you to 9.5 cheaper than starting from scratch AND you'll get the twelve month's worth of upgrades for free. If you buy support, you'll be able to get help from Denny Dedmore and his team of experts as well:). If you are in the U.S. or Canada, you can buy ToolBook itself, support, or maintenance from Platte Canyon. There is a link below for our online store. Or you can call us at 888-866-5251 (888-ToolBk1) or 719-548-1110. Otherwise, contact your local reseller or SumTotal directly. Platte Canyon ToolBook Store |
Tracker.Net Version 4 Now Available
We are excited to announce that the Tracker.Net LMS version 4 is now available. Here are just some of the new features:
Tracker.Net Information |
ToolBook 9.5 Review By Jeff Rhodes, Platte Canyon Multimedia Software Corporation I have been working with Instructor 9.5 for months now. I have been quite impressed with both its new features and its stability. Some of the "big ticket" items include:
For those of you with lots of PowerPoint content, the ability to import the bulk of the content into ToolBook will be more than worth the price of admission to 9.5 on its own. If you are using an older version of PowerPoint, be sure to upgrade it to 2007 so you can use the import feature. PNG support is quite handy, particularly as it now makes it more feasible to use graphic resources within DHTML projects. And there is no need to come up with the "Chromakey" color as transparency is built into the PNG file and support by ToolBook! The ability to support Safari in general and the iPhone/iPod Touch in particular opens up the Macintosh and mobile markets for your ToolBook content. I like the Voice Recording feature but think that the most useful part is the automatic playback of the narration (without needing to use a Universal Media Player (UMP)). I think most high-end applications will re-record or edit the voice recording files themselves. We explain where to find them in the new Learning & Mastering ToolBook Instructor 9.5 CD. The Certificates work great as does the ability to hide the UMP. No longer do you have to move the UMP off the page to keep the user from seeing it. The new right-click menu is cool. Rather than a toolbar and menu items, it is all menu items (with graphics to make it easier to see what you want). If you right-click on an "extended object" group like a multiple choice question, the right-click menu will give you an option for its editor as well as the settings for the individual object. On the technical side, one of things I'm most excited about going forward is the XML support. See the OpenScript Tip article later in this newsletter for an example of how to write an entire book into "XML Book" format with a single line of OpenScript. Even rich text formatting is supported with a special markup. More on this in the Expert Information article below. There are not many changes in the Actions Editor, OpenScript, or Simulations, but all the good stuff is still there of course. Nice job! Platte Canyon ToolBook Instructor Information ToolBook 9.5 New Features Document ToolBook Web Site |
Learning & Mastering ToolBook Instructor 9.5 Released We have completely updated this popular training CD for Instructor 9.5. We have added new content on PowerPoint importing, Voice Recordings, iPhone support, XML, Certificates, and much more. Learning & Mastering ToolBook Instructor contains over 30 hours of training with:
Information Purchase |
TBCON 2008 Report The tenth year of The ToolBook User's Conference and the third year of The e-Learning Authoring Conference (June 13 - 18, 2008) was quite an event. Overseas attendance was at an all-time high, with developers from South Africa, Israel, Denmark, Australia, and the UK all in attendance. They joined developers from around the U.S. to see previews of ToolBook 9.5, learn ToolBook and Flash tips, get introduced to Silverlight, pick up some management tips, meet fellow members of the ToolBook List, and much more. Congratulations to these SumTotal Systems ToolBook Design award winners:
The "Hack Ack" topic this year was Olympics. Mauro Rech and Lee Jay Karns (aka Mr. Peabody) incorporated some old video by Andrew Gould into a funny "blast from the past." Dane Williams created a hilarious Olympic showcase with special events from below the Mason-Dixon Line. Lucy McKain chimed in with an excellent Olympic animation. Despite two rounds of audience judging led by Bob Culver, there was no clear winner. So we all agreed that all three entries tied for 1st! Jeff Rhodes got things started with TBCON Olympic winners for attendance at TBCON: Bliss Bignall and Tomas Lund (7); Tom Hall, Peter Hoyt, Jamy Krulikowski, and Simon Price (8); Denny Dedmore (9); Tim Barham, Lee Jay Karns, Mauro Rech, and Jeff Rhodes (11 including TBCON Europe in 2001). This was followed by SumTotal Olympics with prizes given for correctly answering Asymetrix/click2learn/SumTotal questions. A highlight was Brad Crain knocking over a water pitcher when tossing a T-shirt to a "lucky" winner:). Be sure to mark your calendars for TBCON 2009: August 3 - 5, 2009 with preconference training August 1st and 2nd. TBCON 2008 Resources TBCON 2008 Archives for Attendees Application ($50) |
Plug-In Pro Spotlight - Sticky Notes Completion of a ToolBook project at Platte Canyon is defined in large part by all the "Sticky Notes" being removed from the book. Sticky Notes are yellow fields that we "paste" onto the page for "to do lists," errors, testing comments, and other reminders. We use them extensively in our internal development. On my custom Plug-In Pro palette, I have the "create sticky note" and "go to next sticky note" tools. The first tool draws a small yellow field on the top left part of the page. You can customize the color, size, location, font, etc. of sticky notes with the Plug-In Pro's Field Styles tool, but I like the default. I then type in the reminder to myself or other developers. We also have tools in the Plug-In Pro to "hide all sticky notes" (great when you need to show an interim release to a customer) and then show them again (when you are ready to begin real work again). There are even tools for tiling them, sizing them to show all content, etc. 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 Representing ToolBook Rich Text in XAML ToolBook Rich Text Format (RTF) is not that same as the RTF currently used in Word and other word processors and is quite different than HTML markup. As Tim Barham explained to me at the most recent TBCON, one of the big distinctions is that formatting in ToolBook RTF continues until it is altered. For example if you bold a word in HTML, it looks like this: This word is <b>bold</b> but not this one. The start and the end are marked. In ToolBook RTF, the concept (not actual markup) looks like this: This word is <bold>bold and so is this one. When Tim and Drew Gillies of SumTotal needed to represent ToolBook RTF in XAML (pronounced zammel) for importing PowerPoint content into ToolBook, they need to take this formatting paradigm into account. Here is an example of what they came up with: <EnhancedField IDNumber="1" Hyperlink="" Name="Field 1" AutoSize="false" BorderStyle="none" Bounds="360,2640,13815,10200" DrawDirect="false" FontFace="Arial" FontSize="28" FontStyle="regular" Layer="2" RgbFill="255,255,255" RgbStroke="0,0,0" Spacing="1" TabSpacing="720" TabType="left" Text=".NET Windows Forms - Visual Basic .NET {size:24}Use {style:italic} AddHandler{style:regular} to dynamically associate handlers with events Similar to {style:italic}Listeners{style:regular} in Flash {default} ASP.NET - Visual Basic .NET {size:24}Dynamically inject JavaScript" TextAlignment="left" Transparent="true" UseWindowsColors="false" /> They first take the dominant or default formatting and set its properties: FontFace="Arial" FontSize="28" FontStyle="regular" RgbFill="255,255,255" RgbStroke="0,0,0" TextAlignment="left" The text itself starts with these characteristics and then any changes are represented within brackets {}: Text=".NET Windows Forms - Visual Basic .NET {size:24}Use {style:italic}AddHandler{style:regular} to dynamically associate handlers with events Similar to {style:italic}Listeners{style:regular} in Flash {default} ASP.NET - Visual Basic .NET {size:24}Dynamically inject JavaScript" Notice how the size increases to 24 point with the word "Use." Then italics are added for "AddHandler." The text returns to regular style (but stays at 24 point) until the word "Listeners." The {default} attribute means that all the settings go back to that set for the field. For one more example, let's look at some XAML that has hyperlinks. I've pulled out the attributes that are not relevant here: <EnhancedField IDNumber="0" Text="Info {size:24}Instructor: {hotword-start:1} http://www.plattecanyon.com/icbt.aspx {hotword-end:1} Assistant: {hotword-start:2} http://www.plattecanyon.com/acbt.aspx {hotword-end:2} {default} Order: {hotword-start:3}http://tinyurl.com/2pk3kk {hotword-end:3} "> <EnhancedField.Objects> <Hotword IDNumber="1" Name="Hotword 1" Hyperlink="Jump http://www.plattecanyon.com/icbt.aspx" HotwordStyle="BookDefault" /> </EnhancedField.Objects> Notice how the hotword beginning and ending are marked. The number after "start" corresponds with the IDNumber of the hotword object itself. This is a good example of how XAML works. If there are objects within the <EnhancedField> object, they are represented by the <EnhancedField.Objects> collection. Within the hotword object, the hyperlink type (jump) and URL (http://www.plattecanyon.com/icbt.aspx) are represented within the Hyperlink attribute. |
OpenScript Tip from the Learning & Mastering ToolBook Series
By Tim Barham, SumTotal Systems, Inc. ASYM_PrintWindow for Printing a Viewer The standard print command only supports printing the main window. However, there is a handler, ASYM_PrintWindow, which will let you print any viewer. This is used by the Print action in the Actions Editor. If you add a Print action to an action sequence, then look at the generated OpenScript code, you will see the following call: send ASYM_PrintWindow clientHandle32 of targetWindow, 1, 1, 3, null, null, null, false, false, null Editor note: Digging into the system book code directly (this method is undocumented), gives this syntax and description: ASYM_TextToPrinter [window handle],[printArea], [printOptions], [xScale], [yScale], [jobName], [bringToTop], [updateWindow], [showStatusBar] The printArea parameter is 1 for the complete window and 2 for just the client area. The printOptions is 1 for "Best Fit," 2 for "Stretch to Page," and 3 for "Scale." The xScale and yScale parameters are only relevant for the "Scale" print option. Otherwise, they should be 0. Passing null for these values makes them 0 for "Best Fit" or "Stretch to Page" and calculates the proper scale based on the printer and screen resolution for "Scale." jobName is the optional name that shows up in Print Manager. If you don't specify it, the handler will use the caption of the window you are printing. bringToTop defaults to TRUE if you pass null to it. When it is true, the handler hides various ToolBook windows like the Command Window and brings the window you are printing to the front. If updateWindow is null, it default to TRUE. Updating the window means that the handler invalidates the window and forces the computer to redraw it. showStatusBar reflects whether to show or hide the status bar before printing the window. Passing null means that the status bar remains visible if it is already showing. |
Web Hint from the Learning & Mastering ToolBook Series
By Jeff Rhodes, Platte Canyon Multimedia Software Corporation Certificate Actions There are a number of elegant pieces of Actions Editor scripting related to certificates. Three that I wanted to point out are related to the student name, control panel, and book title. Adding a certificate adds this global variable: -- Global variables ------------------------------------------------------------ Certificate_StudentName (Initial value: ""; Current value: "Happy Gilmore") When the ToolBook DHTML runtime detects that the user is running under a Learning Management System (LMS), then it automatically requests the user name from the LMS and sets the Certificate_StudentName variable. Note that for a SCORM LMS, the format will normally be lastName, firstName. If you put a Student Name Prompt onto a page of your book, then this action gets added: -- On unload page... ----------------------------------------------------------- Set Certificate_StudentName to text of self The Student Name Placeholder then has this action: -- On load page... ------------------------------------------------------------- Comment: Use Certificate_StudentName global variable if it has a value Comment: Else ask LMS for Student Name if available Comment: Else Prompt the user to enter their name Comment: And regardless of how we get the name, once gotten, put into the Comment: Certificate_StudentName variable for future use Comment: But skip this process IF we are actively editing the catalog file If title of this book <> "Certificates Catalog Category" If Certificate_StudentName = "" Set Certificate_StudentName to studentName of this book If Certificate_StudentName contains "," Set Certificate_StudentName to item 2 of Certificate_StudentName && item 1 of Certificate_StudentName Else Loop while Certificate_StudentName = "" Display query: "Enter your name so that it can be inserted into the certificate." ; store response in Certificate_StudentName End conditional loop End if End if Set text of Self to uppercase ( Certificate_StudentName ) End if The first "if" statement skips the logic while the page is still in the Catalog. The code then looks to see if the Certificate_StudentName global variable has been set. If so, it looks for a comma (which will occur if the LMS is SCORM) and reorders into firstName lastName format. If not, it will ask for the student name in a while loop, meaning that it will continue until the user enters something in the box. Finally, the code its text to the uppercase, likely to avoid issues when the user did not use correct casing. The certificate Control Panel (consisting of a Print button and a Close button) has these actions: -------------------------------------------------------------------------------- Actions for Button "Print Certificate" of Page "Default Certificate" -------------------------------------------------------------------------------- -- On click... ----------------------------------------------------------------- Set visible of Group "Certificate Control Panel" to false Print current page Delay 500 ms Set visible of Group "Certificate Control Panel" to true -------------------------------------------------------------------------------- Actions for Button "Close Certificate" of Page "Default Certificate" -------------------------------------------------------------------------------- -- On click... ----------------------------------------------------------------- Go to the previous page in the history list Notice how the Print button hides the control panel group, prints the page, and then shows the group again. The interesting thing about the Close button is that it accesses the "History List" in order to go back to the previous page. I couldn't find a way to build this expression in the Actions Editor, but typing it in passes the syntax checker (and obviously works). Finally, the Book Title field has this action to get the title property of the book. This is not something I've used before. It is hard to get the Expression Builder to show "this Book" so you can get a list of these special properties, but one way is to go to "on load book" and then use the Expression Builder with "Self." title and studentName are particularly useful properties that can be accessed this way. -------------------------------------------------------------------------------- Actions for Auto-Sizing Field "Book Title" of Page "Default Certificate" -------------------------------------------------------------------------------- -- On load page... ------------------------------------------------------------- Set text of Self to title of this book |
Flash ActionScript Tip
By Jeff Rhodes, Platte Canyon Multimedia Software Corporation Using External Interface to Check Flash Version An attendee at the 2008 ToolBook User's Conference / e-Learning Authoring conference came to both Dan Carr (http://www.dancarrdesign.com) and me with a problem she had been having with users having an old Flash version, despite the fact that the correct version had supposedly been installed on their machines. Dan helped her with this ActionScript to ensure that the user is at least at Flash version 8: var versionNumber:Number = Number(System.capabilities.version.charAt(4)); if( versionNumber >= 8 ){ if( ExternalInterface.available == true ){ version_txt.text = "Click the 'Run Test' button, if the 'next' button on this page is available, you have the right Flash player version and may continue to the next page." isFlashOk = true; logo._visible = true; }else{ version_txt.text = "Click the 'Run Test' button, if the 'next' button is still unavailable, your Flash player is not behaving correctly and you will not be able to take this CBT. Please call the IT help desk and ask for a Flash player update. You must exit now."; logo._visible = false; } } else{ version_txt.text = "You don't have Flash Player 8 or higher, please call the IT help desk and ask for the latest Flash player. You will not be able to take this CBT until you get a Flash player update. You must exit now."; logo._visible = false; } Note that the code checks the version both by making sure the version number is at least 8 AND by checking if the External Interface capabilities (which were added in Flash 8) are available. It uses that information to give notification and to set the isFlashOk variable. From there, I helped the customer communicate with ToolBook using the ActionScript below: var methodName:String = "goHome"; var instance:Object = null; var method:Function = getFlashOK; var wasSuccessful:Boolean = ExternalInterface.addCallback(methodName, instance, method); function getFlashOK():String { return isFlashOk.toString(); } The key line is the addCallback method. It registers the "goHome" method to be called from the container control (e.g., ToolBook). It then calls the getFlashOK function and returns the string version of the isFlashOk variable. From ToolBook, we then call this method of the Flash movie via the Actions Editor code below. Note how we pass the name of the method to be called (goHome) as the parameter to the extCallFunction. -- On click... ----------------------------------------------------------------- Execute extCallFunction() of ShockwaveFlash "FlashTest"; store return value in hasFlash8 -- Editor note: here is the parameter of the extCallFunction action: " A nice team effort! Here's part of a follow-up email from the attendee: I just successfully really tested this by uninstalling the newest version of Flash Player nine on a machine and installing Flash Player 7. The test worked perfectly. I also tested the module with 6 different machines that all should have updated players on them - and it worked as it should. The CBT (with the older flash player) also behaved like our users have been experiencing: missing some graphics and a lot of text from my Flash 8 movies. I am thrilled! Thanks so much for your help! |
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 |