Introduction Welcome to The EnterPage newsletter. With ToolBook 9 available in a couple of weeks and The ToolBook User's Conference / e-Learning Authoring Conference next month, this is an exciting time to be an e-Learning Developer. Add to that our recent releases of our Training Studio authoring tool and an upgrade to Plug-In Pro, and we're ready for a vacation! As always, this newsletter is about the latest news in the Platte Canyon and ToolBook world as well as a source of tips and tricks about ToolBook, Flash, and .NET. We've revamped the format to hopefully avoid the Junk Mail folder. If it did end up there accidently, please email us to let us know. If it got there on purpose, then let us know that too:). We hope you enjoy it. |
Order ToolBook Instructor 9 Now From Platte Canyon 32-bit is here! SumTotal announced today that ToolBook Instructor 9 will ship in mid-June. Those of you in the U.S. and Canada can order the upgrade from Platte Canyon for $1,595 right now. Or get the upgrade and support/maintenance for a year for only $1,990. In addition to getting the version directly from the SumTotal warehouse the minute it arrives, you also receive a $50 credit towards The ToolBook User's Conference / e-Learning Authoring Conference or any of our products for each upgrade ordered. Or get a $100 credit for each full version ordered. In addition to being fully 32-bit, the new version boasts the new Book Explorer, SmartPages and SmartStyles, an updated user interface, and much more! Here are some links: Instructor information page Order Instructor upgrade |
Training Studio Released
Training Studio is a revolution in e-Learning authoring. Your content is stored in a database and all graphics and media for a lesson are in a single directory. Interactions are handled by a library of Flash templates that you can customize and expand upon. Authoring is a matter of using the very efficient Training Studio Content Editor, complete with spell-check, thesaurus, and user-configurable phrases. Publishing for SCORM or CD is lightning quick. Training Studio even has a built-in, web-based, comment tracking tool. The $1,995 price tag includes all Flash source, three copies of the Content Editor, the Publisher, and the comment tracking system. There is a completely functional evaluation version available for download. For more information, please visit: Training Studio web page |
Plug-In Pro 7 Now Available
Our original product has turned seven! That's in version years. In "people years" it is almost eleven. With over 150 utilities, editors, and short-cuts, the Platte Canyon Plug-In Pro is the ToolBook developer's best friend. Version 7 brings the ability to copy actions between objects (even from different books!), the merging of pages to different backgrounds, a tool to save and restore your Command Window scripts, the ability to import/export JPEG and GIF files in addition to BMP, the ability to automatically create web graphic placeholders from external graphics located in a directory, a tool for listing all the web graphics and adjusting their external files if desired, a tool to find all your media players and list/adjust their media, the ability to import clips and see all your clip information, the ability to write your sticky notes to a file, the addition of simulation information such as Instructions and Feedback to the generated spell-check file, and much more! Plug-In Pro 7 supports ToolBook Instructor and Assistant 8.5, 2004, and 9.0. To learn more, go to: Plug-In Pro web page |
Schedule Set for the Upcoming ToolBook User's Conference / e-Learning Authoring Conference
We've got what could be our best lineup of sessions ever at next month's ToolBook User's Conference / e-Learning Authoring Conference. Come share the excitement and new tips and tricks on ToolBook 9, learn or enhance your knowledge of Flash, bone up on web technologies, and pick e-Learning Management and SCORM secrets from the masters. The conference with all meals is only $750. Options with lodging as well start at $895. Rates go up by $50 on July 1, so don't wait. Here are some great links: Rates Sessions Faculty Daily Schedule Scheduler Application Preconference Register |
ToolBook Translation System 9 Announced
As if we haven't been busy enough, there is also a new ToolBook Translation System to coincide with the upcoming Instructor release. If you need to deploy your training to multiple languages, this is the tool for you! We've spiffed up the user interface and added explicit support for the Text Pane, Bullet, Shadowed Text Field, and Marquee catalog objects. In addition, we've made it possible to have multiple objects on the same page/background with the same name as long as they are in groups of different names. Version 9 will support ToolBook 2004 and 9.0. To learn more, go to: TTS web page |
Plug-In Pro Spotlight - Copy Object Actions Virtually everyone that develops in ToolBook Instructor uses the Actions Editor on a regular basis. Keeping track of these actions and moving that perfect action to a new object can be problematic, particularly if the object is in another book. That's why we created the Copy Object Actions tool for the Plug-In Pro 7. You can select the source book, page, or background and copy any action from one of those or any of its objects to an object on the current page or to the current book, background, or page. Here are some links: Help topic Plug-In Pro web page |
Expert Information from the Learning & Mastering ToolBook Series By Jeff Rhodes, Platte Canyon Multimedia Software Corporation When to Use the Command Window The Command Window is indispensable part of your Instructor arsenal. You can use it to show and hide objects, set properties, and much more. Virtually anything that you could do from a menu, palette, or Toolbar button can be done via the Command Window instead. Even better, you can use the Command Window to automate repetitive tasks. Here are two examples for positioning fields: 1. Position the field named "title" on the current page at 100,200. position of field "title" = 100,2002. Position ALL fields named "title" at 100,200. step num from 1 to pageCount of this book if isObject(field "title" of page num) = true position of field "title" of page num = 100,200 end if end stepOne other interesting thing that you can do with the Command Window is use it to control itself. For example, you can do this: position of commandWindow = 0,0or you can do: put script of button "button 1"You can even execute the Command Window from other code with this line: execute commandWindowWe use this in our Command Window Tools in the Plug-In Pro. |
OpenScript Tip from the Learning & Mastering ToolBook Series
By Denny Dedmore, SumTotal Systems, Inc. Read Section Names of an INI File I couldn't resist writing my own function to read the section names in an INI file. to handle buttonClick request getSectionNames("c:\desktop\asym.ini") end -- put the following code in your book script -- note that the R.SBK is required for this to -- work. to get getSectionNames fName if ASYM_IsFile(fName) <> true return null end allNames = null closeFile fName openFile fName readFile fName to EOF allData = IT step k from 1 to textlineCount(allData) curTextline = ASYM_Trim(textline k of allData) ct = charCount(curTextline) if char 1 of curTextline = "[" and \ last char of curTextline = "]" push chars 2 to (ct - 1) of curTextline onto allNames end end return allNames end To use it, simply drop the function in the Book Script (for global access from anywhere in your book) and then call the function as I have shown in the buttonClick handler. Note that if the INI file is larger than 64K, it will fail. If you want it to handle more than 64k feel free to recode it accordingly. Editor note: Denny will once again be sharing his knowledge at TBCON. |
Web Hint from the Learning & Mastering ToolBook Series
By Robin McDermott, Resource Engineering, Inc. Tables in ToolBook for DHTML We now take a two-pronged approach that might sound excessive, but we have very intricate tables with lots of details in them and this is the best way that we know to do this: 1. We create the grid for the table in TB and then put all of our text/numbers into the table. That way, if we need more room in some of the cells we can easily make the adjustments. 2. Once we are happy with the layout of the table, we group all of the text/numbers. Then we group the grid and save it as a graphic (I use transmogrify for this, but there are other ways to do this as well). Then delete the grid group and put in the graphic. It lines up perfectly with the text/numbers whereas you might have to do some further adjusting if you created the grid in a graphics program, independent of the text layout. An alternative to the grouping/transmogrify step would be to select the option to export the group (the grid only) as a graphic (web tab on the properties for the group). We take the extra step to convert to the graphic because the dozens (sometimes hundreds) of lines take a long time to export and then load whereas the grid as a graphic exports quickly and loads quickly. Editor note: Come see Robin share her ToolBook DHTML expertise at TBCON. |
Flash ActionScript Tip
One of the challenges in our new Training Studio product was randomizing the answers to multiple choice and other types of learning interactions. The ones that were images needed to be handled differently (that will be a good topic for eLearnCon or a future article) but the code below shows how we did it for answers that were not images. We first make this call in the onEnterFrame: if (randomizeAnswers == true) { master_mc.randomizeAnswerLocations(this, answerObjectNames); } master_mc is a reference to the "parent" movieClip, this is the template movieClip, and answerObjectNames is an associative array with the name of the answer as the key and its original x and y coordinates as the value. Here is the implementation of the function in the .as file: public function randomizeAnswerLocations(movieId:MovieClip, contentMovieId:MovieClip, answerObjectNames:Object):Void { var targetId; // no type since can be CheckBox, RadioButton, etc. var randomNum:Number; var keyId:String; var objectsLocationArray:Array = new Array(); var objectsCounter:Number = 0; var success:Boolean; var n:Number; for (keyId in answerObjectNames) { objectsLocationArray[objectsCounter] = answerObjectNames[keyId]; objectsCounter ++; } for (var keyId in answerObjectNames) { targetId = contentMovieId[keyId]; if (targetId != undefined) { success = false; while (success == false) { randomNum = Math.floor(Math.random() * objectsCounter); // between 0 and the number of objects if (objectsLocationArray[randomNum] != "used") { targetId._x = objectsLocationArray[randomNum].x; targetId._y = objectsLocationArray[randomNum].y; objectsLocationArray[randomNum] = "used"; success = true; } } } } } We first make a normal array (objectsLocationArray) of the coordinates by answer number. This gives us a list of the original coordinates that we can then divvy out randomly. It avoids the need to hard-code the locations and allows developers who want to customize the templates to put the answers anywhere they want. We then randomly create numbers and use them to assign a position to that answer object. For example, answer 1 might get a random value of 4. It then takes the position of answer 4. That location is then "used." If another answer gets that position randomly, it tries again. |
VBTrain.Net Nugget
By Jeff Rhodes, Platte Canyon Multimedia Software Corporation DataBinding to a Grid Most of work in .NET recently has been in support of products like Training Studio. In this example, we read a .NET web service that stores comments, reviewers, administrators, etc. as part of its comment tracking capability. For reviewers, we just show all of them in a sortable grid. The code to do this is quite straightforward as shown below. #Region "Variables" Private tDataSet As DataSet = TrackingDataSet Private Const tableName As String = "Reviewers" Private Const columnWidth As Integer = 134 #End Region #Region "Event Handlers" Private Sub ReviewersEditor_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If tDataSet IsNot Nothing Then With ReviewersSource .Clear() .DataSource = tDataSet .DataMember = tableName .AllowNew = False End With With ReviewersGridView .DataSource = ReviewersSource .Columns("ReviewerId").Visible = False Dim columnId As DataGridViewColumn = .Columns("FirstName") With columnId .HeaderText = FirstNameHeader_Label.Text .Width = columnWidth End With columnId = .Columns("LastName") With columnId .HeaderText = LastNameHeader_Label.Text .Width = columnWidth End With columnId = .Columns("Organization") With columnId .HeaderText = OrganizationHeader_Label.Text .Width = columnWidth End With columnId = .Columns("ContactNumber") With columnId .HeaderText = ContactNumberHeader_Label.Text .Width = columnWidth End With columnId = .Columns("EmailAddress") With columnId .HeaderText = EmailAddressHeader_Label.Text .Width = columnWidth End With End With End If End Sub #End Region We start by referencing our TrackingDataSet property in the tDataSet variable. This DataSet is what we grabbed from the web service. The table within that DataSet that we want to bind to is Reviewers. We do this binding in response to the Load event by setting the DataSource and DataMember properties. By default, the grid will show all columns. But we don't want our autonumbered primary key to show, so we hide that column. If we didn't care about supporting multiple languages, then we'd be done. But to support other languages, we set the header of each column to be the text of a corresponding field on the form. The existence of this field is enough to create a resource file that is easily localized if desired. We also set the column widths based on the overall width of the form. The grid itself is "anchored" on all sides so that it resizes when the user resizes the form itself. |
Platte Canyon Products in the Pipeline
As we mentioned above, TTS 9 will be out within the next week or so to correspond to the release of ToolBook Instructor 9. We'll also be doing minor updates to products like TBK Tracker to make them work with the new ToolBook release. Next out of the chute will be Learning & Mastering ToolBook Instructor 9. From there, we'll look at updating TBK Tracker to work with native Training Studio Flash content. |
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 |