<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Widget King</title>
	<atom:link href="http://www.infosemantics.com.au/widgetking/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.infosemantics.com.au/widgetking</link>
	<description>So many widgets, so little time</description>
	<lastBuildDate>Wed, 27 Feb 2013 01:12:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>WidgetFactory 6.1</title>
		<link>http://www.infosemantics.com.au/widgetking/2013/02/widgetfactory-6-1/</link>
		<comments>http://www.infosemantics.com.au/widgetking/2013/02/widgetfactory-6-1/#comments</comments>
		<pubDate>Wed, 27 Feb 2013 01:12:59 +0000</pubDate>
		<dc:creator>Tristan</dc:creator>
				<category><![CDATA[Interactive Widgets]]></category>
		<category><![CDATA[WidgetFactory Builds]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[6.1]]></category>
		<category><![CDATA[captivate]]></category>
		<category><![CDATA[getSlideObjectByName]]></category>
		<category><![CDATA[interactive widgets]]></category>
		<category><![CDATA[widgetfactory]]></category>

		<guid isPermaLink="false">http://www.infosemantics.com.au/widgetking/?p=826</guid>
		<description><![CDATA[Just released a new version of WidgetFactory that will work with Captivate 6.1. Currently any widgets built with WidgetFactory build with a version under 6.1 will not work with Captivate, so make sure you update your widgets. Click here to get the update A couple of changes have come in with Captivate 6.1 which will [...]]]></description>
			<content:encoded><![CDATA[<p>Just released a new version of WidgetFactory that will work with Captivate 6.1. Currently any widgets built with WidgetFactory build with a version under 6.1 will not work with Captivate, so make sure you update your widgets.</p>
<h3><a href="https://code.google.com/p/widgetfactory/downloads/list">Click here to get the update</a></h3>
<p>A couple of changes have come in with Captivate 6.1 which will cause issues with some widgets. For one, most slide objects now have mouseEnabled and mouseChildren turned off. This means that if you&#8217;ve attached a CLICK mouse event to one, then no matter how much you click it the event won&#8217;t dispatch. To get around this, WidgetFactory&#8217;s getSlideObjectByName() method now turns on the mouseEnabled and mouseChildren properties before returning you the slide object. However, there will probably be various issues with this to come. For example, if at runtime you&#8217;ve got a button INSIDE your widget that you want the audience to press, that won&#8217;t work out of the box in CP 6.1, because the widget itself has had its mouseEnabled and mouseChildren properties turned off. You&#8217;ll have to cycle up the widget&#8217;s parents and make sure those two properties are set to true on each parent.</p>
<p>There is currently a known issue with Captivate 6.1 to do with Interactive Widgets. If you place an interactive widget on the first frame of a slide, then everything is fine. However, if you move it off that frame to&#8230; say frame 30, then the Interactive Widget will NOT pause the movie, and it will NOT report success or failure. All the code in the widget runs fine, there just seems to be some bug in Captivate that stops this happening. There&#8217;s not really anything we can do about it on the Widget developer end, so if you get inquiries about this, just tell the customer that for the moment they&#8217;ll have to start the interactive widget from the first frame of the slide. Here&#8217;s hoping there&#8217;s a patch coming out for this soon.</p>
<p>Aside from that, getSlideObjectByName() will now return objects that have been &#8216;displayed for rest of project&#8217;; which is a nice overdue feature. There are also some bug fixes, mostly fixing some issues widgets had with Question Pools.</p>
<p>Hopefully this will clear your collective headache of all the 6.1 customers sending you e-mails saying &#8216;It don&#8217;t work!&#8217;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infosemantics.com.au/widgetking/2013/02/widgetfactory-6-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Loading Items from the Captivate Library – Part 2</title>
		<link>http://www.infosemantics.com.au/widgetking/2013/02/loading-items-from-the-captivate-library-part-2/</link>
		<comments>http://www.infosemantics.com.au/widgetking/2013/02/loading-items-from-the-captivate-library-part-2/#comments</comments>
		<pubDate>Tue, 19 Feb 2013 06:19:40 +0000</pubDate>
		<dc:creator>Tristan</dc:creator>
				<category><![CDATA[Library]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[captivate]]></category>
		<category><![CDATA[cp6]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.infosemantics.com.au/widgetking/?p=820</guid>
		<description><![CDATA[As promised, you can now watch part 2 of the tutorial for loading objects from the Captivate library into your widgets. If you missed part 1, you can see it here. This part of the tutorial deals with the External and Embedded Resource Lists, and how to load library objects into other widget modes.]]></description>
			<content:encoded><![CDATA[<p>As promised, you can now watch part 2 of the tutorial for loading objects from the Captivate library into your widgets.</p>
<p><a title="Loading Items from the Captivate Library – Part 1" href="http://www.infosemantics.com.au/widgetking/2013/02/loading-items-from-the-captivate-library-part-1/">If you missed part 1, you can see it here.</a></p>
<p>This part of the tutorial deals with the External and Embedded Resource Lists, and how to load library objects into other widget modes.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/HVcIiZ36ECM?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infosemantics.com.au/widgetking/2013/02/loading-items-from-the-captivate-library-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Loading Items from the Captivate Library &#8211; Part 1</title>
		<link>http://www.infosemantics.com.au/widgetking/2013/02/loading-items-from-the-captivate-library-part-1/</link>
		<comments>http://www.infosemantics.com.au/widgetking/2013/02/loading-items-from-the-captivate-library-part-1/#comments</comments>
		<pubDate>Tue, 05 Feb 2013 04:06:48 +0000</pubDate>
		<dc:creator>Tristan</dc:creator>
				<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[captivate]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[widget]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.infosemantics.com.au/widgetking/?p=815</guid>
		<description><![CDATA[Edit: See part 2 here. I have finally made a tutorial on loading stuff from the Captivate Library! This is by far the most exciting new feature in Captivate 6 as far as widgets are concerned. Unfortunately in all the time since CP6 was released, I haven&#8217;t put up a tutorial on how to do it. [...]]]></description>
			<content:encoded><![CDATA[<p>Edit: <a title="Loading Items from the Captivate Library – Part 2" href="http://www.infosemantics.com.au/widgetking/2013/02/loading-items-from-the-captivate-library-part-2/">See part 2 here.</a></p>
<p>I have finally made a tutorial on loading stuff from the Captivate Library! This is by far the most exciting new feature in Captivate 6 as far as widgets are concerned. Unfortunately in all the time since CP6 was released, I haven&#8217;t put up a tutorial on how to do it. So finally the silence is broken! And it is broken in video! Which is a good thing, because technically a blog post is not an audible format, thereby silence would not have been broken that way.</p>
<p>mzmnt~</p>
<p>N-E-WAY, here&#8217;s the tutorial.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/slij-S1OQOw?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p>Hopefully I&#8217;ll have part 2 up soon where I explain how you can register which library objects you want to access at runtime.</p>
<p>Till then, happy loading from the library!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infosemantics.com.au/widgetking/2013/02/loading-items-from-the-captivate-library-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Access Captivate Variables in CP6 (When not using WidgetFactory)</title>
		<link>http://www.infosemantics.com.au/widgetking/2013/01/how-to-access-captivate-variables-in-cp6-for-the-adobe-template/</link>
		<comments>http://www.infosemantics.com.au/widgetking/2013/01/how-to-access-captivate-variables-in-cp6-for-the-adobe-template/#comments</comments>
		<pubDate>Mon, 07 Jan 2013 07:44:05 +0000</pubDate>
		<dc:creator>Tristan</dc:creator>
				<category><![CDATA[Basics]]></category>
		<category><![CDATA[Captivate Variables]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[captivate]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[variables]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.infosemantics.com.au/widgetking/?p=809</guid>
		<description><![CDATA[I get asked this question a lot, so I thought I&#8217;d make a video on it. How to Access Captivate Variables in CP6 if you&#8217;re using the Adobe Widget Template. I&#8217;m Using an Animation If you&#8217;re using an animation or for some reason do not have access to cpSetValue, then don&#8217;t worry, everything&#8217;s not lost. [...]]]></description>
			<content:encoded><![CDATA[<p>I get asked this question a lot, so I thought I&#8217;d make a video on it.</p>
<p>How to Access Captivate Variables in CP6 if you&#8217;re using the Adobe Widget Template.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/8-hal8qMQ9g?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<h2>I&#8217;m Using an Animation</h2>
<p>If you&#8217;re using an animation or for some reason do not have access to cpSetValue, then don&#8217;t worry, everything&#8217;s not lost. The getMovieProps() function is available two parents up from the animation&#8217;s main timeline. So just use this code:</p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">captivateVariables = <a href="http://www.google.com/search?q=object%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:object.html"><span style="color: #004993;">Object</span></a><span style="color: #000000;">&#40;</span><span style="color: #004993;">parent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">parent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span>getMovieProps<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span>variablesHandle<span style="color: #000066; font-weight: bold;">;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://www.infosemantics.com.au/widgetking/2013/01/how-to-access-captivate-variables-in-cp6-for-the-adobe-template/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New Widgets and WidgetFactory 6.0.4!</title>
		<link>http://www.infosemantics.com.au/widgetking/2012/11/new-widgets-and-widgetfactory-6-0-4/</link>
		<comments>http://www.infosemantics.com.au/widgetking/2012/11/new-widgets-and-widgetfactory-6-0-4/#comments</comments>
		<pubDate>Wed, 28 Nov 2012 00:23:09 +0000</pubDate>
		<dc:creator>Tristan</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Static Widgets]]></category>
		<category><![CDATA[WidgetFactory Builds]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[cursor]]></category>
		<category><![CDATA[devlearn]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[mask]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[rotator]]></category>
		<category><![CDATA[slider]]></category>
		<category><![CDATA[wildcard]]></category>

		<guid isPermaLink="false">http://www.infosemantics.com.au/widgetking/?p=800</guid>
		<description><![CDATA[We&#8217;re back from Devlearn! We had a great time meeting up with all of you over there and showing off our new widgets. Speaking of showing off our new widgets, let me show off our new widgets. Have I sufficiently shown off our new widgets yet? Good. Allow me now to show off something else. [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re back from Devlearn! We had a great time meeting up with all of you over there and showing off our new widgets. Speaking of showing off our new widgets, let me show off our new widgets.</p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/6TcslHR72PY?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p>Have I sufficiently shown off our new widgets yet?</p>
<p>Good. Allow me now to show off something else.</p>
<h2>WidgetFactory 6.0.4</h2>
<h3><a href="http://code.google.com/p/widgetfactory/downloads/list">Get it here</a></h3>
<p>There was a small issue that crept up for WidgetFactory in the latest patch for Captivate, so this release is mainly to resolve that issue. There are also a few new util classes if you&#8217;re interested, but the main new toy in this release is wildcards.</p>
<h3>Wildcards</h3>
<p>Okay, so here&#8217;s the problem. You want to work with slide objects right? However, you also want your widget to be placed on a Master slide. BUT, Master Slide objects don&#8217;t have item names right? RIGHT! And they still don&#8217;t. So&#8230; No I don&#8217;t have a solution for reliably grabbing master slide objects yet. HOWEVER, we now have a reliable solution for <em>widgets on master slides</em> grabbing objects on <em>slides attached to that master slide</em>.</p>
<p>Okay here&#8217;s the concept. You&#8217;ve built a mouse cursor widget. Well actually I&#8217;ve built a mouse cursor widget. I showed it off on the video above. But for the sake of argument you&#8217;re developing this mouse cursor widget. You place this widget on the master slide. You attach that master slide to every slide you want to display a custom mouse cursor on. Then on each attached slide you place the graphic that you wish to appear as the mouse cursor. However, in your widget you don&#8217;t want the user to have to define the item name for each object on each slide, so what you do is this: Give the cursor a name of &#8216;@_cursor&#8217;. Then for the mouse cursor graphics on each slide, add &#8216;_cursor&#8217; to the end of the item name.</p>
<p>You may see where I&#8217;m going with this.</p>
<p>getSlideObject() now has an optional third parameter where you can specify a wildcard character. So let&#8217;s take the above example. To grab a slide object with a &#8216;_cursor&#8217; syntax, you&#8217;d write it like this:</p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> myCursor<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=sprite%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:sprite.html"><span style="color: #004993;">Sprite</span></a> = getSlideObjectByName<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;@_cursor&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;@&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></td></tr></tbody></table></div>
<p>getSlideObjectByName will return to you the first object it can find that matches your wildcard name.</p>
<p>BUT! What if you wanted to get ALL the objects on slide that match your wildcard name? In that case, use the new getSlideObjectsByWildCardName() method (yes I know, it&#8217;s a long name). This function returns an array of slide objects that match your query.</p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> myCursors<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=array%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:array.html"><span style="color: #004993;">Array</span></a> = getSlideObjectsByWildCardName<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;@_cursor&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;@&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></td></tr></tbody></table></div>
<p>In the above code, myCursors now contains an array full of every object on slide that has &#8216;_cursor&#8217; at the end of its item name. This saves a lot of headache for your widget users and it&#8217;s not all that much of a pain to implement is it?</p>
<p>So try the new wildcard today!</p>
<h2>The Future</h2>
<p>I&#8217;ll be pretty busy working on our new widgets for a while. There may be another WidgetFactory release in the near future to clean up some issues that we&#8217;ve been receiving about review mode.</p>
<p>Also, since going to Devlearn we got a lot of requests for HTML5 versions of our widgets. Currently only static widgets can be built in HTML5 and we only have one up for sale at the moment. There are rumors going around that support for the other widget types will soon be added to Captivate. So if/when that happens, we&#8217;ll be jumping on the band wagon and releasing HTML5 versions of our Drag and Drop widgets pronto. And a HTML5 Drag and Drop widget is going to need a HTML5 WidgetFactory.</p>
<p>We&#8217;re also thinking of releasing more YouTube tutorials for Captivate. So it&#8217;s possible you may see less written blogs and more video training on developing widgets coming out here.</p>
<p>So that&#8217;s where I&#8217;m at! Have a good day and if you get the chance &#8211; eat a pineapple.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infosemantics.com.au/widgetking/2012/11/new-widgets-and-widgetfactory-6-0-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Landing&#8230;</title>
		<link>http://www.infosemantics.com.au/widgetking/2012/10/landing/</link>
		<comments>http://www.infosemantics.com.au/widgetking/2012/10/landing/#comments</comments>
		<pubDate>Tue, 23 Oct 2012 22:14:00 +0000</pubDate>
		<dc:creator>Tristan</dc:creator>
				<category><![CDATA[Widgets]]></category>
		<category><![CDATA[4wesome]]></category>
		<category><![CDATA[als]]></category>
		<category><![CDATA[awesome]]></category>
		<category><![CDATA[captivate]]></category>
		<category><![CDATA[devlearn]]></category>
		<category><![CDATA[new]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://www.infosemantics.com.au/widgetking/?p=796</guid>
		<description><![CDATA[Well we&#8217;re here! Almost. Well, not at all really. But when you compare the amount of distance we&#8217;ve already traveled to the amount of distance yet to travel, then the above statement doesn&#8217;t seem really inaccurate. Yesterday (or in some people&#8217;s opinion, the day before yesterday) we flew five hours to Melbourne, which was freezing. [...]]]></description>
			<content:encoded><![CDATA[<p>Well we&#8217;re here! Almost. Well, not at all really. But when you compare the amount of distance we&#8217;ve already traveled to the amount of distance yet to travel, then the above statement doesn&#8217;t seem really inaccurate.</p>
<p>Yesterday (or in some people&#8217;s opinion, the day before yesterday) we flew five hours to Melbourne, which was freezing. Then in someone&#8217;s today and other people&#8217;s yesterday we flew thirteen and a half straight hours to Los-Angelis. The last time we went to Los Angelis Airport (LAX) I think we collectively swore never to go there again, but we were pleasantly surprised that our transit from our international flight into our domestic hop over to San-Diego was relatively painless. Though we did hear the ever familiar: &#8216;White curbs are for the immediate loading and unloading of passengers and baggage only. Not stopping. No waiting. Unattended vehicles will be cited and towed.&#8217;</p>
<p>At the time of writing we&#8217;ve just driven down the wrong side of the road to a nice little Mexican-ish suburb and kicked the house owners out for the duration of our stay. The next few days we&#8217;ll be resting up, taking in some of the sights (Zoo, Aquarium, Restaurants, Guitar Factories&#8230; You know, the usual) and then drilling our Adobe Learning Summit presentation into our respective cerebellums. Oh what light from yonder brings!</p>
<p>So what lies in store for you at the Adobe Learning Summit as far as widgets go? Muahaha. MUAHAHAHA! If only you knew my good friend! If only you knew!</p>
<p>If only I told you.</p>
<p>Which I&#8217;m gonna.</p>
<p>Well not everything.</p>
<p>But a rather important part of it.</p>
<p>We&#8230; in our presentation&#8230; At the ALS&#8230; That&#8217;s short for Adobe Learning Summit&#8230; In Las Vegas&#8230; This year&#8230; In a matter of week(s)&#8230; Will be&#8230; Eating hamburgers&#8230; Possibly Burger King or In and Out&#8230; And&#8230; Previewing four new widgets.</p>
<p>FOUR NEW WIDGETS!</p>
<p>For you math nerds that equates to something around &#8216;x&#8217; when x = AWESOME X 4.</p>
<p>4wsome! And just like you&#8217;d expect, each of these widgets is the usual groundbreaking stuff from Infosemantics. Now I emphasize that we will be &#8216;<strong>previewing</strong>&#8216; not &#8216;releasing&#8217; these widgets. But depending on how the week(s) pan out, it&#8217;s possible you may be able to get your (virtual) hands on a new widget on the day of the ALS!</p>
<p>So where are you on *insert ALS date here*? At work? With family? NO, you&#8217;re in Las Vegas with us! Well that&#8217;s the working theory at least, we&#8217;ll see how it pans out.</p>
<p>I&#8217;m going to despam my inbox now.</p>
<p>See you very soon&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infosemantics.com.au/widgetking/2012/10/landing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>We&#8217;re Going to Devlearn and the Adobe Learning Summit</title>
		<link>http://www.infosemantics.com.au/widgetking/2012/08/were-going-to-devlearn-and-the-adobe-learning-summit/</link>
		<comments>http://www.infosemantics.com.au/widgetking/2012/08/were-going-to-devlearn-and-the-adobe-learning-summit/#comments</comments>
		<pubDate>Mon, 20 Aug 2012 01:07:08 +0000</pubDate>
		<dc:creator>Tristan</dc:creator>
				<category><![CDATA[Widgets]]></category>

		<guid isPermaLink="false">http://www.infosemantics.com.au/widgetking/?p=784</guid>
		<description><![CDATA[You read the title correctly! That is, you read it correctly if it said: &#8216;We&#8217;re Going to Develearn and the Adobe Learning Summit&#8217;. We&#8217;re going to Devlearn and the Adobe Learning Summit! I&#8217;m so excited I may just say that again&#8230; But I won&#8217;t. What&#8217;s more, Rod and I will be presenting a part on [...]]]></description>
			<content:encoded><![CDATA[<p>You read the title correctly! That is, you read it correctly if it said: &#8216;We&#8217;re Going to Develearn and the Adobe Learning Summit&#8217;.</p>
<p>We&#8217;re going to Devlearn and the <a href="http://www.elearningguild.com/DevLearn/content/2417/dl12---adobe-learning-summit/">Adobe Learning Summit</a>! I&#8217;m so excited I may just say that again&#8230; But I won&#8217;t.</p>
<p>What&#8217;s more, Rod and I will be presenting a part on <a href="http://www.elearningguild.com/DevLearn/concurrent-sessions/session-details.cfm?session=4032">Extending Captivate with Widgets</a> where we&#8217;ll be giving tips and tricks on how to use our widgets in your Captivate courses. I highly recomend turning up as we will most likely be releasing a new widget as well as showing some previews of what&#8217;s to come. The Adobe Learning summit presentations have been divided into four &#8216;streams&#8217; which are being delivered simultaneously. We&#8217;re presenting in the Go Deep track, so if you want to know how to make advanced courses, you know where you should be on <strong>October 29th between the hours of 11:15 AM and 12:15 PM!</strong> I&#8217;m selling this hard right now because we&#8217;re up against Publish for iPad. WHO USES IPADS? Oh goodness I&#8217;m not helping myself any am I?</p>
<p>To distract from the iPad (which believe me is not easy to do) <a href="http://www.elearningguild.com/DevLearn/concurrent-sessions/speaker-details.cfm?event=101&amp;speaker=2441">click here to read my speaker details and see a picture of me in a red bowtie</a> (Bowties are cool).</p>
<p>So if you want to come, make sure you&#8217;re registered for the Adobe Learning Summit. To do so <a href="http://www.elearningguild.com/DevLearn/content/2417/dl12---adobe-learning-summit/">CLICK HERE</a> and then the Register button.</p>
<p>For those of you who are Facebook inclined, you can also join the <a href="https://www.facebook.com/events/431936803524060/">2012 Adobe Learning summit Facebook event page</a>.</p>
<p>I&#8217;ll see you there. Unless you&#8217;re not there. In which case the likelihood of me seeing you there decreases significantly. So be there or be quandrangular!</p>
<p><a href="http://www.elearningguild.com/DevLearn/content/2417/dl12---adobe-learning-summit/"><img class="aligncenter size-full wp-image-785" title="final_ALS_Banner_220X306_070812_going live" src="http://www.infosemantics.com.au/widgetking/wp-content/uploads/2012/08/final_ALS_Banner_220X306_070812_going-live.jpg" alt="" width="220" height="306" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infosemantics.com.au/widgetking/2012/08/were-going-to-devlearn-and-the-adobe-learning-summit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Did Someone Say &#8216;Example&#8217;?</title>
		<link>http://www.infosemantics.com.au/widgetking/2012/08/did-someone-say-example/</link>
		<comments>http://www.infosemantics.com.au/widgetking/2012/08/did-someone-say-example/#comments</comments>
		<pubDate>Sun, 19 Aug 2012 09:31:08 +0000</pubDate>
		<dc:creator>Tristan</dc:creator>
				<category><![CDATA[Basics]]></category>
		<category><![CDATA[Interactive Widgets]]></category>
		<category><![CDATA[Question Widgets]]></category>
		<category><![CDATA[Static Widgets]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[6]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[intellij]]></category>
		<category><![CDATA[muddled]]></category>

		<guid isPermaLink="false">http://www.infosemantics.com.au/widgetking/?p=777</guid>
		<description><![CDATA[Recently I&#8217;ve had a number of people asking me to put up an example of a WidgetFactory 6 widget. At least I think it was a number of people. It could have been the same person through a number of different channels. Whoever you are and in whatever quantity I wish to thank you and [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve had a number of people asking me to put up an example of a WidgetFactory 6 widget. At least I think it was a number of people. It could have been the same person through a number of different channels. Whoever you are and in whatever quantity I wish to thank you and provide you with a gift. Here for you all now, whether you requested it or not, is a free to download widget with all its code begging to be investigated.</p>
<h3><a href="http://www.infosemantics.com.au\downloads\widgetexamples\widgetfactory6example.zip">Click Here to Download the WidgetFactory 6 Example</a></h3>
<p>I&#8217;ve included a .fla file that you can use to publish the widget. However you can use any program you wish to compile the widget. Except Word. Because Word doesn&#8217;t compile .swf files. Come to think of it you couldn&#8217;t use PowerPoint either&#8230; or Outlook, or Captivate, or Firefox, or Windows Task Manager, or Steam, or iTunes, or Intelli-J Idea- Wait no, you can use Intelli-J idea to compile it.</p>
<p>Okay, let&#8217;s try that again. You can use ANY Flash IDE to publish the widget example, you just have to make sure that WidgetFactory is already installed in that IDE. If you&#8217;re using Flash, then <a title="Setting up WidgetFactory in Flash" href="http://www.infosemantics.com.au/widgetking/2010/08/setting-up-widget-factory-in-flash/">click here to read a tutorial on setting up WidgetFactory</a>.</p>
<p>In other news I&#8217;m going to be easing up on the blog posts for a bit because&#8230; Wait&#8230; No I should probably write a devoted blog post about that&#8230; I&#8217;ll be right back.</p>
<p>PS: One of the people who originally requested an example wanted to know how to build a pause/play/fastforward button with a widget. For that person, please have a look at the TestInteractiveRuntimeMode class. In there I have coded two buttons, one to report the Interactive Widget&#8217;s success criteria and one to report its failure criteria. To change the button&#8217;s functionality to pause or play the movie for say&#8230; the success button, go to its click event handler (the onSuccess function) and delete the code in there. You can pause and play the movie the same way as you would in Advanced Actions, by changing a <a title="Accessing Captivate User Variables – Part 1" href="http://www.infosemantics.com.au/widgetking/2010/10/accessing-captivate-user-variables-part-1/">Captivate Variable</a>. For example, if you wanted to pause the movie you&#8217;d write this in the onSuccess function:</p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">cpVariables<span style="color: #000066; font-weight: bold;">.</span>rdcmndPause = <span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">;</span></div></td></tr></tbody></table></div>
<p>For a list of other Captivate Variables you can use to control the Captivate Movie, please take a look at <a href="http://pipwerks.com/2010/08/23/complete-list-of-variables-for-adobe-captivate-5/">this post here</a> (look under the variables named &#8216;rdcmnd&#8217;).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infosemantics.com.au/widgetking/2012/08/did-someone-say-example/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Building a Widget Step by Step &#8211; Part 3: Widget Modes</title>
		<link>http://www.infosemantics.com.au/widgetking/2012/08/building-a-widget-step-by-step-part-3-widget-modes/</link>
		<comments>http://www.infosemantics.com.au/widgetking/2012/08/building-a-widget-step-by-step-part-3-widget-modes/#comments</comments>
		<pubDate>Wed, 01 Aug 2012 03:35:16 +0000</pubDate>
		<dc:creator>Tristan</dc:creator>
				<category><![CDATA[Basics]]></category>
		<category><![CDATA[Widget Step by Step]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[widget modes]]></category>

		<guid isPermaLink="false">http://www.infosemantics.com.au/widgetking/?p=768</guid>
		<description><![CDATA[Greetings intrepid widget builders! Last time we looked at how to define a widget as being of static, interactive, or question type. In this post, we shall overview of working with separated widget mode classes. How do they work? Widget mode classes work much the same as the main &#8216;Widget&#8217; class. Each widget mode is [...]]]></description>
			<content:encoded><![CDATA[<p>Greetings intrepid widget builders!</p>
<p><a title="Building A Widget Step by Step – Part 2: Widget Type" href="http://www.infosemantics.com.au/widgetking/2012/07/building-a-widget-step-by-step-part-2/">Last time</a> we looked at how to define a widget as being of static, interactive, or question type. In this post, we shall overview of working with separated widget mode classes.</p>
<h2>How do they work?</h2>
<p>Widget mode classes work much the same as the main &#8216;Widget&#8217; class. Each widget mode is represented by its own class, and to add content to these widget modes, we create our own class and make it extend the relevant Widget Mode class.</p>
<h2>Where to create</h2>
<p>If you know how to work with one widget mode class, chances are you&#8217;ll know how to work with them all. Each class follows the same routine.</p>
<p>First of all, before any code inside your widget mode class will run, that widget mode class must be created. Where is it created? Let&#8217;s see where we are so far with out main widget class.</p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0033ff; font-weight: bold;">import</span> widgetfactory<span style="color: #000066; font-weight: bold;">.</span>Widget<span style="color: #000066; font-weight: bold;">;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> MyWidget <span style="color: #0033ff; font-weight: bold;">extends</span> Widget <span style="color: #000000;">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> MyWidget<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #000000;">&#125;</span><br />
<br />
<span style="color: #000000;">&#125;</span></div></td></tr></tbody></table></div>
<p>We have a bare bones widget which Captivate will recognize as a static widget. Ideally, you want to keep as much code as possible out of your main widget class. Your main widget class has only one purpose, and that is to create the individual widget mode classes. But where in this class should we create the widget modes? Well, the widget class contains a special <a title="Top 5 of WidgetFactory 5 – #5 Template Methods" href="http://www.infosemantics.com.au/widgetking/2010/08/top-5-of-widgetfactory-5-template-methods-2/">Template Method</a> wherein you do so.</p>
<p>A &#8216;Template Method&#8217; is a programming technique. It works like this: Remember in the last post we learnt about the &#8216;super class&#8217;. The &#8216;super class&#8217; is the fancy title for the class you&#8217;re extending (which in this case is the Widget class). When a developer is building a class that he knows will be extended by another class, he can build in a function that does nothing. Yep, that&#8217;s right. Nothing. The only thing this function does is get called at a particular time. At which time it will do&#8230; nothing.</p>
<p>Why all this waste? Because the functionality of this function is not supposed to be written by this &#8216;super class&#8217;, it is to be defined by any classes extending it.</p>
<p>So in the Widget class, there is a function called &#8216;createWidgetModes()&#8217;. If you went into the source code for the Widget class, you&#8217;d see that this function, sure enough, does nothing. Once again this is to allow you to override this function and use it to create your own widget modes.</p>
<p>Here&#8217;s how we can override that function:</p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">override <span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> createWidgetModes<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><br />
<span style="color: #000000;">&#123;</span><br />
<br />
<span style="color: #000000;">&#125;</span></div></td></tr></tbody></table></div>
<p>Now anything we put between the {} will run when this function is called!</p>
<p>It is here that we create our widget modes. How do we  create them? Well you&#8217;ll have to wait for the next post to see that.</p>
<h2>It&#8217;s the same&#8230; But different</h2>
<p>Every widget mode is represented by a class. We won&#8217;t go into each one individually in this post, but we will focus on one template method they have in common. This is the &#8216;initiate()&#8217; template method. After you&#8217;ve created all your widget modes in your main Widget class, WidgetFactory will then try to detect what widget mode the widget is in. Once WidgetFactory has successfully determined this, it will inform the appropriate widget mode class that it is active. How does it inform that class? By calling the &#8216;initiate()&#8217; template method.</p>
<p>No matter what type of widget mode you&#8217;re using &#8211; stage, properties dialog, widget panel preview, or runtime &#8211; each one has an &#8216;initiate()&#8217; template method that is called when the mode has been activated. So to make something happen in that widget mode, all you have to do is override the &#8216;initiate()&#8217; method and insert your code. Once again, inside a widget mode call you&#8217;d override that method like so:</p>
<div class="codecolorer-container actionscript3 default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">override <span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> initiate<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><br />
<span style="color: #000000;">&#123;</span><br />
<br />
<span style="color: #000000;">&#125;</span></div></td></tr></tbody></table></div>
<h2>A word on organization</h2>
<p>This part is for relatively advanced users. I thought this would be a good place to talk about organizing your class files into a package structure. Seeing as each widget mode has a separate class, you have to ensure you have a good package structure, or your project becomes messy very quickly. I&#8217;ve found the following package structure helpful for keeping your code organized.</p>
<p>First off at the top have a &#8216;modes&#8217; package.</p>
<ul>
<li>modes</li>
</ul>
<p>Then under that have the following packages:</p>
<ul>
<ul>
<li>stage</li>
<li>runtime</li>
<li>propertiesdialog</li>
<li>widgetpanel</li>
</ul>
</ul>
<p>Now stick the relevant widget mode class under the relevant package, along with any classes only harnessed by a single widget mode. If you have classes that are used by more than one mode, place them in a packages outside the &#8216;mode&#8217; package.</p>
<h2>See you next time</h2>
<p>Well that&#8217;s an overview of using all types of widget modes. Now were going to get specific and look at each widget mode in turn to see how to use it. Tune in next time to see which widget mode we look at first.</p>
<p><em>PS: Overall this post hasn&#8217;t been very funny. So to lighten the mood, here&#8217;s a public domain image of a cat in a bird feeder that I found on wikimedia commons.</em></p>
<p><img class="aligncenter" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/Ko%C4%8Dka_v_krm%C3%ADtku_2.jpg/640px-Ko%C4%8Dka_v_krm%C3%ADtku_2.jpg" alt="" width="640" height="470" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infosemantics.com.au/widgetking/2012/08/building-a-widget-step-by-step-part-3-widget-modes/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Update</title>
		<link>http://www.infosemantics.com.au/widgetking/2012/07/update/</link>
		<comments>http://www.infosemantics.com.au/widgetking/2012/07/update/#comments</comments>
		<pubDate>Mon, 30 Jul 2012 07:20:12 +0000</pubDate>
		<dc:creator>Tristan</dc:creator>
				<category><![CDATA[Widgets]]></category>
		<category><![CDATA[als]]></category>
		<category><![CDATA[devlearn]]></category>
		<category><![CDATA[dolphin]]></category>
		<category><![CDATA[hamster]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.infosemantics.com.au/widgetking/?p=763</guid>
		<description><![CDATA[I&#8217;m afraid there&#8217;s no tutorial today, because my brain is feeling a few kilos lighter than it usually does. I have the flu. In fact I&#8217;ve had it for a week now and haven&#8217;t really seen all that much improvement. Bleh. So today I thought I&#8217;d spare my brain and update you guys on what we&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m afraid there&#8217;s no tutorial today, because my brain is feeling a few kilos lighter than it usually does. I have the flu. In fact I&#8217;ve had it for a week now and haven&#8217;t really seen all that much improvement. Bleh.</p>
<p>So today I thought I&#8217;d spare my brain and update you guys on what we&#8217;re doing over here.</p>
<h2>Happy Travels</h2>
<p>Next week I&#8217;ll be off to Hong Kong for a conference (non-elearning related) so I shall be detached from the universe till I return in two weeks. Then in late October, Rod and I will be jet setting to the Americas for DevLearn and the Adobe Learning Summit! Yes! We shall be present in the first person to give you some sneak peeks at our upcoming widgets.</p>
<p>Speaking of which&#8230;</p>
<h2>Upcoming Projects</h2>
<p>For the first time at Infosemantics, we&#8217;re developing two widgets simultaneously. One amazingly huge! The other to distract me if I get too overwhelmed with the former.</p>
<p>Let&#8217;s start with the simpler one. As I promised before, there will be a HTML5 version of WidgetFactory and I plan to use this widget to aid its development. It will be a relatively simple Static Widget. This widget is codenamed&#8230; Actually we haven&#8217;t come up with one yet&#8230; Let&#8217;s say&#8230; Hamster. Yes. Project Hamster.</p>
<p>The next project already has a codename. It&#8217;s name is &#8211; <strong>Project Dolphin</strong>. Why &#8216;dolphin&#8217;? Because dolphins have larger brains that humans, and this widget is very smart. It&#8217;s quite an ambitious widget with potential to be ludicrously fun. If you thought the Master Widget was impressive, then this is going to blow you away. I know it&#8217;s blowing my flu infected brain away just trying to scope it out.</p>
<p>Speaking of which, I should probably get back to that&#8230;</p>
<p>So long! (and thanks for all the fish)</p>
<div align="center"><iframe width="640" height="480" src="http://www.youtube.com/embed/ojydNb3Lrrs" frameborder="0" allowfullscreen></iframe></div>
]]></content:encoded>
			<wfw:commentRss>http://www.infosemantics.com.au/widgetking/2012/07/update/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
