<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8580677504246035010</id><updated>2012-01-14T11:31:32.070-08:00</updated><category term='Actionscript 3.0'/><category term='Phidgets'/><category term='Chanter'/><category term='FaceOSC'/><category term='AIR'/><category term='brainwaves'/><category term='Unity'/><category term='WiiFlash'/><category term='EEG'/><category term='Papervision3D'/><category term='Events'/><category term='Android'/><category term='Tuio'/><category term='Tutorials'/><category term='UMap'/><category term='Papervision3D Essentials book'/><title type='text'>Jeff Winder Freelance Flash &amp; Flex Developer</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-5767383467867757052</id><published>2011-12-10T03:23:00.000-08:00</published><updated>2011-12-12T03:55:18.989-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tuio'/><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='FaceOSC'/><title type='text'>FaceOSC and AIR working example</title><content type='html'>I got a couple of questions about how to make an AIR app listen for &lt;a href="http://vimeo.com/26098366"&gt;FaceOSC&lt;/a&gt;, as shown in &lt;a href="http://jeffwinder.blogspot.com/search/label/FaceOSC" target="blank" &gt;these two previous posts&lt;/a&gt;,  so I've put together a basic 'one class' working example in Flash Builder.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-T0a4g_7nwWo/TuSbeOHTbrI/AAAAAAAAADQ/Dw50nH0cAPY/s1600/Screen%2Bshot%2B2011-12-11%2Bat%2B12.57.54.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="http://2.bp.blogspot.com/-T0a4g_7nwWo/TuSbeOHTbrI/AAAAAAAAADQ/Dw50nH0cAPY/s400/Screen%2Bshot%2B2011-12-11%2Bat%2B12.57.54.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5684839573135519410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;What do you need?&lt;/span&gt;&lt;br /&gt;&lt;a href="https://github.com/kylemcdonald/ofxFaceTracker" target="blank"&gt;&lt;span style="font-weight:bold;"&gt;FaceOSC&lt;/span&gt;&lt;/a&gt; (mac only, already included in my download project in the &lt;span style="font-style:italic;"&gt;faceOSC&lt;/span&gt; folder)&lt;br /&gt;&lt;a href="http://www.osculator.net/" target="blank" &gt;&lt;span style="font-weight:bold;"&gt;Osculator&lt;/span&gt;&lt;/a&gt; (mac only)&lt;br /&gt;&lt;a href="http://www.tuio.org/?flash" target="blank" &gt;&lt;span style="font-weight:bold;"&gt;This as3 Tuio library&lt;/span&gt;&lt;/a&gt; to make it easier listening for the OSC messages from FaceOSC (also already included in the &lt;span style="font-style:italic;"&gt;src&lt;/span&gt; folder)&lt;br /&gt;&lt;br /&gt;Actually you don't need Osculator to make the FaceOSC to AIR protocol work, but you need it to open the &lt;span style="font-style:italic;"&gt;FaceOSC-Osculator.oscd&lt;/span&gt; file - in the &lt;span style="font-style:italic;"&gt;osculator&lt;/span&gt; folder - that comes with FaceOSC in order to see all the OSC addresses that Kyle used for the facial gestures and expressions. Note that you cannot run the Osculator file and the AIR app simultaneously as they use the same port.&lt;br /&gt;&lt;br /&gt;I also exported the project as an AIR app, which you can find in the &lt;span style="font-style:italic;"&gt;air&lt;/span&gt; folder. A certificate is included, the password is 1234. Basically, you just need to open up FaceOSC and publish the Flash Builder project, or run the AIR app. You can download the example project &lt;a href="http://seedylifestyle.com/blog/faceOSC_AIR_Example/FaceOSC_AIR_Example.zip"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-5767383467867757052?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/5767383467867757052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2011/12/faceosc-and-air-working-example.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/5767383467867757052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/5767383467867757052'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2011/12/faceosc-and-air-working-example.html' title='FaceOSC and AIR working example'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-T0a4g_7nwWo/TuSbeOHTbrI/AAAAAAAAADQ/Dw50nH0cAPY/s72-c/Screen%2Bshot%2B2011-12-11%2Bat%2B12.57.54.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-3857062460705381816</id><published>2011-09-27T06:48:00.000-07:00</published><updated>2011-09-29T14:15:07.367-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='EEG'/><category scheme='http://www.blogger.com/atom/ns#' term='Chanter'/><category scheme='http://www.blogger.com/atom/ns#' term='brainwaves'/><title type='text'>Chanter: brainwaves, EEG, meditation and Flash</title><content type='html'>I've released a desktop app called &lt;span style="font-weight:bold;"&gt;Chanter&lt;/span&gt;. It's a tool for people who'd like to improve their meditation or mindfulness skills, which gives instant audio feedback about your state of meditation. In short, the app plays a mantra-like audio loop, and changes the pitch of the loop according to the meditation level of the user. &lt;br /&gt;&lt;br /&gt;You need a &lt;span style="font-weight:bold;"&gt;NeuroSky&lt;/span&gt; headset, the &lt;a href="http://store.neurosky.com/products/mindwave-1" target="blank"&gt;&lt;span style="font-weight:bold;"&gt;MindWave&lt;/span&gt;&lt;/a&gt; or Mindset, to make this work. The headset registers brainwaves - EEG - that are sent to the computer wirelessly, using a dongle that comes with the headset, and a small software program that you need to install.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Flash&lt;br /&gt;&lt;/span&gt;Seantheflexguy was the first developer who made me aware of this exciting hardware, and he also wrote an &lt;a href="http://seantheflexguy.com/blog/2010/12/19/control-your-computer-with-your-brain-using-actionscript-api-update/" target="blank"&gt;open source ActionScript 3.0 API&lt;/a&gt;, making it simple to hook up the headset to a Flash or AIR project. Actually I'm not using that API, as NeuroSky also provides some brief and clear &lt;a href="http://developer.neurosky.com/docs/doku.php?id=helloeeg_adobe_flash_tutorial" target="blank"&gt;instructions&lt;/a&gt; on making Flash listen for messages from the headset.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Brainwaves and level of meditation&lt;/span&gt;&lt;br /&gt;The messages returned by the NeuroSky software are not only the delta, theta, alpha, beta and gamma bands of the EEG, but also two values that are based on these bands: concentration and meditation. Obviously, Chanter listens to the &lt;span style="font-weight:bold;"&gt;meditation&lt;/span&gt; value, although concentration and meditation are not opposites; the 'ideal' state of mind would be a value of 100 for both categories.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://player.vimeo.com/video/29089677?title=0&amp;amp;byline=0&amp;amp;portrait=0" width="600" height="450" frameborder="0" webkitAllowFullScreen allowFullScreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Why Chanter?&lt;/span&gt;&lt;br /&gt;There are quite a few apps in the Neurosky store, most of them simple games, with an emphasis on mind exercise. The one that - in my opinion - stands out is another meditation tool called &lt;a href="http://dagazproject.com/" target="blank"&gt;Dagaz&lt;/a&gt;. What struck me though is that all available apps are based on the idea of visual interaction, in other words: you need to look at your computer screen while experiencing the tool or playing the game. My next thought was: wouldn't it be nice to build a meditation tool that is based on audio only, so that you don't have to look at your screen when meditating, a tool that even allows you to close your eyes? This idea resulted in Chanter.&lt;br /&gt;&lt;br /&gt;A promotional website can be found &lt;a href="http://www.jeffwinder.nl/chanter/"target="blank" &gt;here&lt;/a&gt;, and the app is available in the &lt;a href="http://store.neurosky.com/products/chanter" target="blank"&gt;NeuroSky webstore&lt;/a&gt;. Below are a couple of screenshots of the app.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-W9pBs5ltJzI/TnNyM2UOA4I/AAAAAAAAACM/Q2vSXyJYSys/s1600/Chanter_main.png" target="blank" &gt;&lt;img width: 625px; height: 479px;" src="http://3.bp.blogspot.com/-W9pBs5ltJzI/TnNyM2UOA4I/AAAAAAAAACM/Q2vSXyJYSys/s400/Chanter_main.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5652987522344420226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-VOqJjl51ZlA/TnNy0hgICzI/AAAAAAAAACU/Jz2nCUjBvJU/s1600/Chanter_stats.png" target="blank" &gt;&lt;img width: 625px; height: 479px;" src="http://4.bp.blogspot.com/-VOqJjl51ZlA/TnNy0hgICzI/AAAAAAAAACU/Jz2nCUjBvJU/s400/Chanter_stats.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5652988203951983410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Pitching the mantra loop&lt;/span&gt;&lt;br /&gt;The code for changing the tone of the mantra mp3 that the user selects is derived from a class by (surprise, surprise) &lt;a href="http://blog.andre-michelle.com/2009/pitch-mp3/" target="blank""&gt;Andre Michelle&lt;/a&gt;. It's not real pitch shifting, which would mean maintaining the same tempo, but it suffices for the short loops that I'm using.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-3857062460705381816?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/3857062460705381816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2011/09/chanter-brainwaves-eeg-meditation-and.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/3857062460705381816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/3857062460705381816'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2011/09/chanter-brainwaves-eeg-meditation-and.html' title='Chanter: brainwaves, EEG, meditation and Flash'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-W9pBs5ltJzI/TnNyM2UOA4I/AAAAAAAAACM/Q2vSXyJYSys/s72-c/Chanter_main.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-3564679062307436913</id><published>2011-09-19T03:04:00.000-07:00</published><updated>2011-10-12T02:03:30.314-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Installing Adobe AIR 3 SDK in Flash Builder 4.5.1 on Mac OS</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.cftips.net/assets/content//images/Adobe%20Air/adobe-air-logo.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 120px; height: 120px;" src="http://www.cftips.net/assets/content//images/Adobe%20Air/adobe-air-logo.png" border="0" alt="" /&gt;&lt;/a&gt;To install and use a new AIR SDK, you need to overlay it on an &lt;br /&gt;existing Flex SDK. This is a bit more tricky on a Mac than on &lt;br /&gt;&lt;a href="http://forums.adobe.com/thread/899921" target="blank" &gt;Windows&lt;/a&gt;, because - as far as I know - you still cannot do a copy/overwrite &lt;br /&gt;without deleting the contents of the folder you are overwriting. &lt;br /&gt;&lt;br /&gt;The following steps illustrate how to install the AIR SDK using the terminal.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UPDATE October 5, 2011&lt;/span&gt;&lt;br /&gt;I wrote this post during the pre-release period of Flash Player 11 and AIR 3. Now that they are both officially released, I have changed the links to the official release url's, but I haven't updated all the screenshots!&lt;br /&gt;&lt;br /&gt;1.&lt;br /&gt;Close Flash Builder or Eclipse.&lt;br /&gt;&lt;br /&gt;2.&lt;br /&gt;Look up your current SDK. I was using 4.5.1. which on my macBook is located here:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;/Applications/Adobe Flash Builder 4.5/sdks/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3.&lt;br /&gt;Copy the entire, current SDK folder and rename it, I named it &lt;span style="font-style:italic;"&gt;AIR3SDK&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;4.&lt;br /&gt;Download the AIR 3 SDK &lt;a href="http://www.adobe.com/special/products/air/sdk/" target="blank" &gt;&lt;span style="font-style:italic;"&gt;here&lt;/span&gt;&lt;/a&gt;,&lt;br /&gt;and save this file &lt;span style="font-style:italic;"&gt;inside&lt;/span&gt; your newly created &lt;span style="font-style:italic;"&gt;AIR3SDK&lt;/span&gt; folder.&lt;br /&gt;&lt;br /&gt;5.&lt;br /&gt;Open the terminal (Applications&gt;Utilities&gt;Terminal.app), and cd to the root of the &lt;span style="font-style:italic;"&gt;AIR3SDK&lt;/span&gt; folder. &lt;br /&gt;&lt;br /&gt;You can also just type cd, add a white space and then drag the SDK folder in your terminal &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;username$ cd /Applications/Adobe\ Flash\ Builder\ 4.5/sdks/AIR3SDK&lt;/span&gt;&lt;br /&gt;and hit enter.&lt;br /&gt;&lt;br /&gt;6.&lt;br /&gt;Now that you're in the root of the new Flex SDK folder, type or copy/paste&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;tar jxvf AdobeAIRSDK.tbz2&lt;/span&gt;&lt;br /&gt;or use the name of the file you downloaded, when it's a different version,&lt;br /&gt;&lt;br /&gt;and hit enter. This will unzip the tar file that you've downloaded, and automatically overwrite any duplicate files. Here's a (NOT UPDATED) screenshot of my terminal for step 5 and 6:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-JI55Y7dRsWc/TncklVpr_CI/AAAAAAAAAC0/WndcrfBJOXk/s1600/Screen%2Bshot%2B2011-09-19%2Bat%2B13.15.54.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 25px;" src="http://2.bp.blogspot.com/-JI55Y7dRsWc/TncklVpr_CI/AAAAAAAAAC0/WndcrfBJOXk/s400/Screen%2Bshot%2B2011-09-19%2Bat%2B13.15.54.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5654028081072700450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;7.&lt;br /&gt;In the root of the &lt;span style="font-style:italic;"&gt;AIR3SDK&lt;/span&gt; folder, open &lt;span style="font-style:italic;"&gt;flex-sdk-description.xml&lt;/span&gt; and change the content of the &lt;span style="font-style:italic;"&gt;name&lt;/span&gt; node from &lt;span style="font-style:italic;"&gt;Flex 4.5.1&lt;/span&gt; to &lt;span style="font-style:italic;"&gt;AIR3SDK&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-vSZ_BsCHtgQ/TndEWY09UII/AAAAAAAAAC8/3EmKDj1wO10/s1600/Screen%2Bshot%2B2011-09-19%2Bat%2B15.30.10.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 169px;" src="http://4.bp.blogspot.com/-vSZ_BsCHtgQ/TndEWY09UII/AAAAAAAAAC8/3EmKDj1wO10/s400/Screen%2Bshot%2B2011-09-19%2Bat%2B15.30.10.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5654063008599330946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;8.&lt;br /&gt;Still inside the &lt;span style="font-style:italic;"&gt;AIR3SDK&lt;/span&gt; folder, go to &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;/frameworks/libs/player/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and create a folder called &lt;span style="font-style:italic;"&gt;11.0&lt;/span&gt;.&lt;br /&gt;Now download &lt;span style="font-style:italic;"&gt;PlayerGlobal (.swc)&lt;/span&gt; &lt;a href="http://www.adobe.com/support/flashplayer/downloads.html" target="blank"&gt;&lt;span style="font-style:italic;"&gt;here&lt;/span&gt;&lt;/a&gt;, save it in the 11.0 folder and rename it to &lt;span style="font-style:italic;"&gt;playerglobal.swc&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;9.&lt;br /&gt;Open Flash Builder or Eclipse and start a new project. In the opening popup, click on &lt;span style="font-style:italic;"&gt;Configure Flex SDK's&lt;/span&gt;, click on &lt;span style="font-style:italic;"&gt;Add&lt;/span&gt;, click &lt;span style="font-style:italic;"&gt;Browse&lt;/span&gt; to browse to the &lt;span style="font-style:italic;"&gt;AIR3SDK&lt;/span&gt; folder, and open it. Now you can set this SDK version as default SDK or select it in the dropdown list when you're back in the opening popup.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-pMEzfTycHQQ/Tncju6ZY6WI/AAAAAAAAACs/rtkjY8aEORQ/s1600/Screen%2Bshot%2B2011-09-19%2Bat%2B13.11.26.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 381px; height: 400px;" src="http://1.bp.blogspot.com/-pMEzfTycHQQ/Tncju6ZY6WI/AAAAAAAAACs/rtkjY8aEORQ/s400/Screen%2Bshot%2B2011-09-19%2Bat%2B13.11.26.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5654027146043648354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;AIR 3 has some cool new features such as &lt;a href="http://www.leebrimelow.com/?p=2954" target="blank" &gt;Captive Runtime&lt;/a&gt;, which bundles the AIR runtime with your app, so that the user doesn't have to download it separately; something that you already could do with AIR to iOS, but is new for Android and desktop.&lt;br /&gt;&lt;br /&gt;Another new feature is extending AIR with &lt;a href="http://www.flashmobileblog.com/2011/09/15/air-3-mapview-native-extension-on-ios/" target="blank" &gt;Native Extensions&lt;/a&gt;, meaning that you can integrate native code from the target device into your app, of which one of the results can be a major performance boost.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-3564679062307436913?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/3564679062307436913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2011/09/installing-adobe-air-3-sdk-in-flash.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/3564679062307436913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/3564679062307436913'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2011/09/installing-adobe-air-3-sdk-in-flash.html' title='Installing Adobe AIR 3 SDK in Flash Builder 4.5.1 on Mac OS'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-JI55Y7dRsWc/TncklVpr_CI/AAAAAAAAAC0/WndcrfBJOXk/s72-c/Screen%2Bshot%2B2011-09-19%2Bat%2B13.15.54.png' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-8038327165885163159</id><published>2011-07-25T06:43:00.000-07:00</published><updated>2011-12-12T03:54:53.489-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='FaceOSC'/><title type='text'>FaceWriter, typing text with your face - FaceOSC &amp; Flash (Air)</title><content type='html'>Here's another video that shows an Adobe AIR app I've been working on. It listens for the data from FaceOSC, a great tool by &lt;a href="http://kylemcdonald.net/" target="blank"&gt;Kyle McDonald&lt;/a&gt;; read more about it in &lt;a href="http://jeffwinder.blogspot.com/2011/07/face-gestures-faceosc-and-flash.html" target="blank"&gt;my previous post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This AIR app enables you to type text by moving your head and using some facial gestures.&lt;br /&gt;It's quite basic for now, allowing you to add text, add spaces, do a backspace and clear the entire textfield. Functionality could be added of course, such as saving the final text to a local file or e-mailng it.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="600" height="365" src="http://www.youtube.com/embed/0TQJa1MmRYI" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;The hardest thing is to keep it all stable and precise, as you tend to change the orientation of your head quite easily. This would require a more advanced way of calibrating, and some functionality that lets you re-calibrate once in a while.&lt;br /&gt;&lt;br /&gt;Anyway, I'm not sure if this could be benificial to anyone - I was thinking of people with spinal cord injury, but I'm far from familiar with that area. If you have any ideas, please drop me a line.&lt;br /&gt;&lt;br /&gt;UPDATE 11-12-2011: I've put together a basic working example of an AIR project that listens for FaceOSC messages. You can find it &lt;a href=" http://jeffwinder.blogspot.com/2011/12/faceosc-and-air-working-example.html" target="blank"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-8038327165885163159?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/8038327165885163159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2011/07/facewriter-typing-text-with-your-face.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/8038327165885163159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/8038327165885163159'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2011/07/facewriter-typing-text-with-your-face.html' title='FaceWriter, typing text with your face - FaceOSC &amp; Flash (Air)'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/0TQJa1MmRYI/default.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-4826253975009971016</id><published>2011-07-11T09:30:00.000-07:00</published><updated>2011-12-12T03:54:30.332-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tuio'/><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='FaceOSC'/><category scheme='http://www.blogger.com/atom/ns#' term='Actionscript 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><title type='text'>Face gestures, FaceOSC and Flash</title><content type='html'>The coolest thing I saw last week was a&lt;a href="http://vimeo.com/26098366" target="blank"&gt; video by Kyle McDonald&lt;/a&gt; , who released a brilliant tool called FaceOSC, which handles facial gestures. FaceOSC is based on &lt;a href="http://web.mac.com/jsaragih/FaceTracker/FaceTracker.html" target="blank"&gt;Facetracker by Jason Saragih&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;With the help of &lt;a href="http://www.tuio.org/?flash"&gt;this open source AS3 Tuio library&lt;/a&gt; I made an AIR project listen for the OSC messages sent by FaceOSC. OSC stands for &lt;a href="http://en.wikipedia.org/wiki/Open_Sound_Control" target="blank"&gt;Open Sound Control&lt;/a&gt;, although this example has nothing to do with sound.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="590" height="470" src="http://www.youtube.com/embed/ArG3t_OOYis" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;The code to receive the OSC messages is quite simple. First, create a new OSCManager, add a listener, and start the manager. I found out that I had to use port 8338 by opening the osculator that comes with FaceOSC.&lt;br /&gt;&lt;blockquote&gt;var oscManager: OSCManager = new OSCManager(new UDPConnector("0.0.0.0",8338,true),null, false);&lt;br /&gt;oscManager.addMsgListener(this);&lt;br /&gt;oscManager.start();&lt;/blockquote&gt;&lt;br /&gt;Then, in a function called acceptOSCMessage, check what kinds of OSC packets are coming in by checking the message address:&lt;br /&gt;&lt;blockquote&gt;public function acceptOSCMessage(oscmsg:OSCMessage):void&lt;br /&gt;{&lt;br /&gt;   //To see the different addresses(i.e. references to the gesture values)&lt;br /&gt;   //trace("address: " + oscmsg.address)&lt;br /&gt;   &lt;br /&gt; if( oscmsg.address == "/pose/orientation" )&lt;br /&gt; {&lt;br /&gt;               //roll = oscmsg.arguments[2] * rollFactor;&lt;br /&gt; //speed = oscmsg.arguments[0] * speedFactor;&lt;br /&gt; //your code here  &lt;br /&gt; }&lt;br /&gt;   &lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;To make this last function work you need to implement IOSCListener.&lt;br /&gt;&lt;br /&gt;The 3D scene is from the book &lt;a href="http://www.packtpub.com/papervision3d-essentials/book" target="blank"&gt;Papervision3D Essentials&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;UPDATE 11-12-2011: I've put together a basic working example, which you can find &lt;a href=" http://jeffwinder.blogspot.com/2011/12/faceosc-and-air-working-example.html" target="blank"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-4826253975009971016?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/4826253975009971016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2011/07/face-gestures-faceosc-and-flash.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/4826253975009971016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/4826253975009971016'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2011/07/face-gestures-faceosc-and-flash.html' title='Face gestures, FaceOSC and Flash'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/ArG3t_OOYis/default.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-7300353395126766006</id><published>2010-03-27T07:49:00.000-07:00</published><updated>2011-09-28T01:41:29.490-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Controlling Unity3D with an Android phone</title><content type='html'>In my &lt;a href="http://jeffwinder.blogspot.com/2010/02/remotely-controlling-desktop-air-app.html" target = "blank" &gt;previous post&lt;/a&gt; I turned my Android G1 into a game controller for an Adobe Air desktop app. The same thing can be done with a Unity file. Although I didn't have much time to make something really nice, I've quickly put together a short video, which demonstrates that Unity also supports UDP. Again, I've used &lt;a href="http://www.remotedroid.net/" target = "blank" &gt;RemoteDroid&lt;/a&gt; to send data to my computer over its wireless network. You can read more about the how in the previous post.&lt;br /&gt;&lt;br /&gt;I'm not sure who made the 3d jet model, but I downloaded  it &lt;a href="http://artist-3d.com/free_3d_models/dnm/model_disp.php?uid=511&amp;ad=08military_weapons.php&amp;count=count" target = "blank" &gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/juertTl9GZo&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/juertTl9GZo&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="590" height="470"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-7300353395126766006?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/7300353395126766006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2010/03/controlling-unity3d-with-android-phone.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/7300353395126766006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/7300353395126766006'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2010/03/controlling-unity3d-with-android-phone.html' title='Controlling Unity3D with an Android phone'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-7308696602115546655</id><published>2010-02-25T10:35:00.000-08:00</published><updated>2011-09-28T01:47:36.870-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Remotely controlling a desktop AIR app with an Android phone</title><content type='html'>AIR 2.0 has support for &lt;a href="http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/net/DatagramSocket.html" target = "blank" &gt;UDP&lt;/a&gt; sockets, which allows you to send and receive messages using the Universal Datagram Protocol. This means that you can communicate with other applications without the need for an extra server.&lt;br /&gt;&lt;br /&gt;I used &lt;a href="http://www.remotedroid.net/" target = "blank" &gt;RemoteDroid&lt;/a&gt; for this demo, which is an Android app that turns your Android phone into a remote control, using your own wireless network. Originally, the app gives remote access to native applications on your computer and simulates the mouse - moving it and pressing left and right buttons - but you also need to download a server on your computer to make that work.&lt;br /&gt;&lt;br /&gt;However, since AIR 2.0 supports UDP, you don't need an extra server to make your Android phone  communicate with an AIR app. In this video, I made the AIR app listen for UDP messages sent by the Android app, to control a paperplane in a Papervision3D scene. So basically, you can turn your Android phone into a game controller. &lt;br /&gt;&lt;br /&gt;RemoteDroid has just been open sourced, which gave me a chance to take a look at the source code of the Android app. I added the accelerometer data of the phone to it (locally, I didn't contact the owner of the project yet), and in the video you can see how I:&lt;br /&gt;- control the speed of the paperplane by pitching the phone &lt;br /&gt;- steer the paperplane by rolling the phone, &lt;br /&gt;- zoom in and out by pressing the left 'button' on the phone's touch screen&lt;br /&gt;- change the camera mode to a random perspective by pressing the right 'button' on the touch screen &lt;br /&gt;- change the camera perspective to the Third Person, First Person and default  perspective by pressing the 1, 2 and 3 keyboard keys respectively.&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/BeK493u712I&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/BeK493u712I&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="590" height="470"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The Papervision3D scene in the video stems from chapter 6 of the Papervision3D Essentials &lt;a href="http://jeffwinder.blogspot.com/search/label/Papervision3D%20Essentials%20book" target = "blank" &gt;book&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;Of course there are other apps than AIR that support UDP. For instance, I also managed to control a Unity file this way, so &lt;a href="http://jeffwinder.blogspot.com/2010/03/controlling-unity3d-with-android-phone.html"&gt;another video&lt;/a&gt; will follow soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-7308696602115546655?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/7308696602115546655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2010/02/remotely-controlling-desktop-air-app.html#comment-form' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/7308696602115546655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/7308696602115546655'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2010/02/remotely-controlling-desktop-air-app.html' title='Remotely controlling a desktop AIR app with an Android phone'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-277529808607987694</id><published>2010-02-07T07:39:00.000-08:00</published><updated>2011-09-28T08:56:48.143-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='WiiFlash'/><title type='text'>Video tutorial: Hooking Up Your Wii Remote In Unity Indie</title><content type='html'>I've put together a (7-part) video tutorial that shows you how to get your Wii Remote working in Unity Indie. In short, I send data from the Wii Remote to Flash, and then these data are being passed to Unity. &lt;br /&gt;&lt;br /&gt;So the tutorial covers two things:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Exchanging data between Flash and Unity with &lt;a href="http://code.google.com/p/aquiris-u3dobject/" target = "blank" &gt;U3dObject&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hooking up your wiimote with &lt;a href="http://code.google.com/p/wiiflash/" target = "blank" &gt;WiiFlash&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you don't have a wiimote or are not interested in the wii part, the video may still be worth watching if you want to know how to set up communication between Flash and Unity; something that could serve many more purposes than just the wii thing.&lt;br /&gt;&lt;br /&gt;The videos discuss only the Wii Remote, but hooking up your Nunchuck is just as easy. Also, the balance board is supported by WiiFlash.&lt;br /&gt;&lt;br /&gt;The tutorial got a little longer than I had in mind - total running time is 55 minutes - but if you have a Flash or/and Unity background, you may want to skip forward here and there. &lt;br /&gt;&lt;br /&gt;I have bundled two example projects, which you can find &lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.seedylifestyle.com/tutorials/WiiFlashUnityTutorial.zip"&gt;here&lt;/a&gt;&lt;/span&gt;. I included the simple project from the video tutorial, and also a second project, which demonstrates how to hook up the Wii Remote and Nunchuck to Unity's FPS_Tutorial.&lt;br /&gt;&lt;br /&gt;UPDATE: In the video I say that the latest mac version of the WiiFlash server - 0.4.5 - was not working for me. I have tried it again, and now it seems to work fine - not sure what happened last time. Keep in mind though that you may have to tell it to open in 32-bit mode. Right-click on the app, select Get Info and check the Open in 32-bit Mode checkbox.&lt;br /&gt;&lt;br /&gt;&lt;object width="580" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0UuJawKXpfI&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/0UuJawKXpfI&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/c9WivN-_H4M&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/c9WivN-_H4M&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/AXYHz_ohhAs&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/AXYHz_ohhAs&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/i1u0XRDjSio&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/i1u0XRDjSio&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/so5f7gw1dKY&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/so5f7gw1dKY&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pvDyfZ-C_q0&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/pvDyfZ-C_q0&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/g9B_XvBrFgs&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/g9B_XvBrFgs&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-277529808607987694?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/277529808607987694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2010/02/video-tutorial-hooking-up-your-wii.html#comment-form' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/277529808607987694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/277529808607987694'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2010/02/video-tutorial-hooking-up-your-wii.html' title='Video tutorial: Hooking Up Your Wii Remote In Unity Indie'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-2370452102998202195</id><published>2009-09-03T05:09:00.000-07:00</published><updated>2009-09-04T13:04:30.948-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D Essentials book'/><title type='text'>‘Papervision3D Essentials’ Book Out Now!</title><content type='html'>So here it is, 13 chapters full of information about one of the hottest open-source Flash projects that makes real-time and interactive 3D come alive in the browser. Packt Publishing has just released the Papervision3D Essentials book that we (Paul Tondeur and I) have been working on this year.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.packtpub.com/papervision3d-essentials/mid/310809tn2fty?utm_source=Jeffwinder.nl&amp;utm_medium=affiliate&amp;utm_content=authorsite&amp;utm_campaign=mdb_000434" target="blank"&gt;&lt;img src="http://farm4.static.flickr.com/3443/3888081166_f9effc8a88.jpg" width="400" height="157" alt="Papervision3D Essentials book" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I must say that we’re very satisfied with the content of the book, in that it covers loads of stuff, related to many different aspects of the engine. Some of the topics have been discussed a lot within the community, such as loading external models and applying materials. However, as the available information is quite fragmented, it was about time for an extensive introduction. Other topics, such as effects, particles and vector text, may have been somewhat underexposed in the past, and also have found their well-deserved place in the book, because they are so much fun to work with!&lt;br /&gt;&lt;br /&gt;I guess the strength of the book is its comprehensiveness. During the writing process I told myself more than once: man, I wish I had a book like this about a year ago. It’s so nice to be able to look things up in one document, instead of searching the web for articles, of which many are outdated. Mind you, all the available tutorials and blog posts definitely have been an important source of information, along with the posts on the mailing list. And hopefully, it will stay that way. I have no worries there though, as the Papervision3D community seems to be highly committed and eager to learn and share.&lt;br /&gt;&lt;br /&gt;All by all, Paul and I had a great time in exploring the inner working of the Papervision3D engine, finding out about hidden gems, obscure methods and cool tricks. I guess my new teaching motto is: ‘If you want to learn something, don’t read a book, write one!’ Don’t take this advice too seriously though :-). &lt;br /&gt;&lt;br /&gt;You can find more information about the content and level of the book on the publisher’s site, which is right &lt;a href="http://www.packtpub.com/papervision3d-essentials/mid/310809tn2fty?utm_source=Jeffwinder.nl&amp;utm_medium=affiliate&amp;utm_content=authorsite&amp;utm_campaign=mdb_000434" target="blank" &gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Download sample chapter 8 - External Models - &lt;a href="http://www.packtpub.com/files/5722-papervision-3d-sample-chapter-8-external-models.pdf" target="blank" &gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Read excerpts from the book - 3D vector drawing and text, and Lines3D - &lt;a href="http://www.packtpub.com/article/3d-vector-drawing-and-text-papervision3d-part1" target="blank" &gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-2370452102998202195?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/2370452102998202195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2009/09/papervision3d-essentials-book-out-now.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/2370452102998202195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/2370452102998202195'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2009/09/papervision3d-essentials-book-out-now.html' title='‘Papervision3D Essentials’ Book Out Now!'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3443/3888081166_f9effc8a88_t.jpg' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-8080307189171766993</id><published>2009-08-30T02:03:00.000-07:00</published><updated>2010-02-07T14:48:46.802-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D Essentials book'/><title type='text'>3D Vector Drawing and Text with Papervision3D</title><content type='html'>&lt;span style="font-style:italic;"&gt;The following article is an excerpt from Papervision3D Essentials and assumes that you have Papervision3D up and running on your computer. The first chapter of the &lt;a href="http://www.packtpub.com/papervision3d-essentials/book/sl/papervision-abr1/0809?utm_source=sl_papervision_abr1_0809&amp;utm_medium=content&amp;utm_campaign=sanjiv" target="blank" &gt;book&lt;/a&gt; is a step-by-step introduction on how to download Papervision3D and how to configure Flash CS3, Flash CS4, Flex Builder or Flash Builder for creating Papervision3D projects. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The main part of this article is dedicated to a library called VectorVision that was incorporated into Papervision3D. After discussing the classes of this library, we will take a look at the &lt;em&gt;Lines3D &lt;/em&gt;class in the next part that also enables you to draw 3D lines. This class was already a part of Papervision3D before VectorVision was incorporated.&lt;/p&gt;&lt;h1&gt;VectorVision: 3D vector text and drawing&lt;/h1&gt;&lt;p&gt;&lt;strong&gt;VectorVision &lt;/strong&gt;is a library written in ActionScript that allows you to render vector graphics in Papervision3D and add a 3D perspective to them. The project started as a separate library that you could download and use as an add-on. However, it was fully integrated in Papervision3D in June 2008.&lt;/p&gt;&lt;p&gt;Being able to use vector shapes and text theoretically means that you could draw any kind of vector graphic and give it a 3D perspective. This article will focus on the features that are implemented in Papervision3D:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Creating 3D vector text&lt;/li&gt;&lt;li&gt;Drawing 3D vector shapes such as lines, circles, and rectangles&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Keep in mind that 3D letters can be seen as vector shapes too, just like lines, circles, and rectangles. The above distinction is made based on how VectorVision is implemented in Papervision3D. Some classes specifically deal with creating 3D text, whereas others enable you to create vector shapes.&lt;/p&gt;&lt;h1&gt;Creating a template class for the 3D text examples&lt;/h1&gt;&lt;p&gt;Because the 3D text examples we are about to see have a lot in common, we will use a template class that looks as follows:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;package&lt;br&gt;{&lt;br&gt; import flash.events.Event;&lt;br&gt; import org.papervision3d.materials.special.Letter3DMaterial;&lt;br&gt; import org.papervision3d.typography.Font3D;&lt;br&gt; import org.papervision3d.typography.Text3D;&lt;br&gt; import org.papervision3d.typography.fonts.HelveticaBold;&lt;br&gt; import org.papervision3d.view.BasicView;&lt;br&gt; public class Text3DTemplate extends BasicView&lt;br&gt; {&lt;br&gt; private var material:Letter3DMaterial;&lt;br&gt; private var font3D:Font3D;&lt;br&gt; private var text3D:Text3D;&lt;br&gt; private var easeOut:Number = 0.6;&lt;br&gt; private var reachX:Number = 0.5&lt;br&gt; private var reachY:Number = 0.5&lt;br&gt; private var reachZ:Number = 0.5;&lt;br&gt; public function Text3DTemplate()&lt;br&gt; {&lt;br&gt; stage.frameRate = 40;&lt;br&gt; init();&lt;br&gt; startRendering();&lt;br&gt; }&lt;br&gt; private function init():void&lt;br&gt; {&lt;br&gt; //code to be added&lt;br&gt; }&lt;br&gt; override protected function onRenderTick(event:Event = null):void&lt;br&gt; {&lt;br&gt; var xDist:Number = mouseX - stage.stageWidth * 0.5;&lt;br&gt; var yDist:Number = mouseY - stage.stageHeight * 0.5;&lt;br&gt; camera.x += (xDist - camera.x * reachX) * easeOut;&lt;br&gt; camera.y += (yDist - camera.y * reachY) * easeOut;&lt;br&gt; camera.z += (-mouseY * 2 - camera.z ) * reachZ;&lt;br&gt; super.onRenderTick();&lt;br&gt; }&lt;br&gt; }&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;p&gt;We added some class properties that are used in the render method, where we added code to move the camera when the mouse moves. Also, we imported four classes and added three class properties that will enable us to create 3D text.&lt;/p&gt;&lt;h1&gt;How to create and add 3D text&lt;/h1&gt;&lt;p&gt;Let's see how we can create 3D vector text that looks crisp and clear. The general process of creating and displaying 3D text looks as follows:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Create material with &lt;em&gt;Letter3DMaterial&lt;/em&gt;.&lt;/li&gt;&lt;li&gt;Create a &lt;em&gt;Font3D &lt;/em&gt;instance.&lt;/li&gt;&lt;li&gt;Create a &lt;em&gt;Text3D &lt;/em&gt;instance, passing the text, font, and material to it, and add it to the scene or to another do3D.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;We will create an example that demonstrates several features of &lt;em&gt;Text3D&lt;/em&gt;:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Multiline&lt;/li&gt;&lt;li&gt;Alignment&lt;/li&gt;&lt;li&gt;Outlines&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;All the following code should be added inside the &lt;em&gt;init()&lt;/em&gt; method. Before we instantiate the classes that we need in order to display 3D text, we assign a text string to a local variable.&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;var text:String = "Multiline 3D textnwith letter spacing,nline spacing,nand alignment ;-)";&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Now, let's create a text material, font, and text. First we instantiate &lt;em&gt;Letter3DMaterial&lt;/em&gt;, which resides in the &lt;em&gt;org.papervision3d.materials.special&lt;/em&gt; package:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;material = new Letter3DMaterial(0x000000);&lt;br&gt;&lt;/pre&gt;&lt;p&gt;The constructor of this class takes two optional parameters:&lt;/p&gt;&lt;br /&gt;&lt;p style="text-align: center;"&gt;&lt;link rel="File-List" href="file:///C:%5CUsers%5Ctest88%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CUsers%5Ctest88%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Ctest88%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt; &lt;w:View&gt;Normal&lt;/w:View&gt;  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt; &lt;w:TrackMoves/&gt;  &lt;w:TrackFormatting/&gt; &lt;w:PunctuationKerning/&gt;  &lt;w:ValidateAgainstSchemas/&gt; &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt; &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt; &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;  &lt;w:DoNotPromoteQF/&gt; &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt; &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt; &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt; &lt;w:Compatibility&gt;  &lt;w:BreakWrappedTables/&gt; &lt;w:SnapToGridInCell/&gt;  &lt;w:WrapTextWithPunct/&gt; &lt;w:UseAsianBreakRules/&gt;  &lt;w:DontGrowAutofit/&gt; &lt;w:SplitPgBreakAndParaMark/&gt;  &lt;w:DontVertAlignCellWithSp/&gt; &lt;w:DontBreakConstrainedForcedTables/&gt; &lt;w:DontVertAlignInTxbx/&gt;  &lt;w:Word11KerningPairs/&gt; &lt;w:CachedColBalance/&gt;  &lt;/w:Compatibility&gt; &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt; &lt;m:mathPr&gt;  &lt;m:mathFont m:val="Cambria Math"/&gt; &lt;m:brkBin m:val="before"/&gt;  &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;  &lt;m:smallFrac m:val="off"/&gt; &lt;m:dispDef/&gt;  &lt;m:lMargin m:val="0"/&gt;  &lt;m:rMargin m:val="0"/&gt;  &lt;m:defJc m:val="centerGroup"/&gt;  &lt;m:wrapIndent m:val="1440"/&gt;  &lt;m:intLim m:val="subSup"/&gt;  &lt;m:naryLim m:val="undOvr"/&gt;  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267"&gt;  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt; &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/&gt; &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt; &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt; &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:"Book Antiqua"; panose-1:2 4 6 2 5 3 5 3 3 4; mso-font-alt:"Book Antiqua"; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:647 0 0 0 159 0;} @font-face {font-family:"Courier Std"; panose-1:0 0 0 0 0 0 0 0 0 0; mso-font-alt:"Courier Std"; mso-font-charset:0; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:auto; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:Verdana; panose-1:2 11 6 4 3 5 4 4 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1593833729 1073750107 16 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.Pa55, li.Pa55, div.Pa55 {mso-style-name:Pa55; mso-style-priority:99; mso-style-unhide:no; mso-style-next:Normal; margin:0cm; margin-bottom:.0001pt; mso-line-height-alt:9.55pt; mso-pagination:widow-orphan; mso-layout-grid-align:none; text-autospace:none; font-size:12.0pt; font-family:"Book Antiqua","serif"; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.Pa0, li.Pa0, div.Pa0 {mso-style-name:Pa0; mso-style-priority:99; mso-style-unhide:no; mso-style-next:Normal; margin:0cm; margin-bottom:.0001pt; mso-line-height-alt:10.55pt; mso-pagination:widow-orphan; mso-layout-grid-align:none; text-autospace:none; font-size:12.0pt; font-family:"Book Antiqua","serif"; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} span.A4 {mso-style-name:A4; mso-style-priority:99; mso-style-unhide:no; mso-style-parent:""; mso-ansi-font-size:9.5pt; mso-bidi-font-size:9.5pt; font-family:"Courier Std","serif"; mso-ascii-font-family:"Courier Std"; mso-hansi-font-family:"Courier Std"; mso-bidi-font-family:"Courier Std"; color:black;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 72.0pt 72.0pt 72.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt; &lt;/p&gt;&lt;div align="center"&gt; &lt;table class="MsoNormalTable" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr style="height: 12.9pt;"&gt; &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 83.4pt; height: 12.9pt;" valign="top" width="111"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 77.95pt; height: 12.9pt;" valign="top" width="104"&gt; &lt;p class="Pa55"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Parameter&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 77.95pt; height: 12.9pt;" valign="top" width="104"&gt; &lt;p class="Pa55"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Data type&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 91.3pt; height: 12.9pt;" valign="top" width="122"&gt; &lt;p class="Pa55"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Default value&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 114.25pt; height: 12.9pt;" valign="top" width="152"&gt; &lt;p class="Pa55"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Description&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr style="height: 46.95pt;"&gt; &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 83.4pt; height: 46.95pt;" valign="top" width="111"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 77.95pt; height: 46.95pt;" valign="top" width="104"&gt; &lt;p class="Pa0"&gt;&lt;span class="A4"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;fillColor&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 77.95pt; height: 46.95pt;" valign="top" width="104"&gt; &lt;p class="Pa0"&gt;&lt;span class="A4"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;uint&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 91.3pt; height: 46.95pt;" valign="top" width="122"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;0xFF00FF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 114.25pt; height: 46.95pt;" valign="top" width="152"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Defines the material color with a 24-bit hexadecimal value, which in turn defines the color of the text.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr style="height: 24.15pt;"&gt; &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 83.4pt; height: 24.15pt;" valign="top" width="111"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 77.95pt; height: 24.15pt;" valign="top" width="104"&gt; &lt;p class="Pa0"&gt;&lt;span class="A4"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;fillAlpha&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 77.95pt; height: 24.15pt;" valign="top" width="104"&gt; &lt;p class="Pa0"&gt;&lt;span class="A4"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Number&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 91.3pt; height: 24.15pt;" valign="top" width="122"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 114.25pt; height: 24.15pt;" valign="top" width="152"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Sets the transparency of the material.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt; &lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In our example, we created black text material with no transparency.&lt;/p&gt;&lt;p&gt;Next, we choose the font of our liking by instantiating one of the font classes. Papervision3D has four classes that represent the following fonts:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;HelveticaBold&lt;/li&gt;&lt;li&gt;HelveticaLight&lt;/li&gt;&lt;li&gt;HelveticaMedium&lt;/li&gt;&lt;li&gt;HelveticaRoman&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The classes have the same name as the font and are subclasses of &lt;em&gt;Font3D&lt;/em&gt;. Later we will look at how we can use fonts other than these four, but for now we will pick&lt;em&gt;HelveticaBold&lt;/em&gt;. The &lt;em&gt;Font3D &lt;/em&gt;constructor does not have any parameters.&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;font3D = new HelveticaBold();&lt;br&gt;&lt;/pre&gt;&lt;p&gt;We then create a &lt;em&gt;Text3D &lt;/em&gt;instance:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;text3D = new Text3D(text,font3D,material);&lt;br&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;Text3D &lt;/em&gt;has four parameters available, of which only the last one is optional.&lt;/p&gt;&lt;br /&gt;&lt;p style="text-align: center;"&gt;&lt;link rel="File-List" href="file:///C:%5CUsers%5Ctest88%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CUsers%5Ctest88%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Ctest88%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt; &lt;w:View&gt;Normal&lt;/w:View&gt;  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt; &lt;w:TrackMoves/&gt;  &lt;w:TrackFormatting/&gt; &lt;w:PunctuationKerning/&gt;  &lt;w:ValidateAgainstSchemas/&gt; &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt; &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt; &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;  &lt;w:DoNotPromoteQF/&gt; &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt; &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt; &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt; &lt;w:Compatibility&gt;  &lt;w:BreakWrappedTables/&gt; &lt;w:SnapToGridInCell/&gt;  &lt;w:WrapTextWithPunct/&gt; &lt;w:UseAsianBreakRules/&gt;  &lt;w:DontGrowAutofit/&gt; &lt;w:SplitPgBreakAndParaMark/&gt;  &lt;w:DontVertAlignCellWithSp/&gt; &lt;w:DontBreakConstrainedForcedTables/&gt; &lt;w:DontVertAlignInTxbx/&gt;  &lt;w:Word11KerningPairs/&gt; &lt;w:CachedColBalance/&gt;  &lt;/w:Compatibility&gt; &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt; &lt;m:mathPr&gt;  &lt;m:mathFont m:val="Cambria Math"/&gt; &lt;m:brkBin m:val="before"/&gt;  &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;  &lt;m:smallFrac m:val="off"/&gt; &lt;m:dispDef/&gt;  &lt;m:lMargin m:val="0"/&gt;  &lt;m:rMargin m:val="0"/&gt;  &lt;m:defJc m:val="centerGroup"/&gt;  &lt;m:wrapIndent m:val="1440"/&gt;  &lt;m:intLim m:val="subSup"/&gt;  &lt;m:naryLim m:val="undOvr"/&gt;  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267"&gt;  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt; &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt; &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt; &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/&gt; &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/&gt; &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/&gt; &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/&gt; &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt; &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/&gt; &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt; &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt; &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt; &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt; &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt; &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:"Book Antiqua"; panose-1:2 4 6 2 5 3 5 3 3 4; mso-font-alt:"Book Antiqua"; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:647 0 0 0 159 0;} @font-face {font-family:"Courier Std"; panose-1:0 0 0 0 0 0 0 0 0 0; mso-font-alt:"Courier Std"; mso-font-charset:0; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:auto; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:Verdana; panose-1:2 11 6 4 3 5 4 4 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1593833729 1073750107 16 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.Pa55, li.Pa55, div.Pa55 {mso-style-name:Pa55; mso-style-priority:99; mso-style-unhide:no; mso-style-next:Normal; margin:0cm; margin-bottom:.0001pt; mso-line-height-alt:9.55pt; mso-pagination:widow-orphan; mso-layout-grid-align:none; text-autospace:none; font-size:12.0pt; font-family:"Book Antiqua","serif"; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p.Pa0, li.Pa0, div.Pa0 {mso-style-name:Pa0; mso-style-priority:99; mso-style-unhide:no; mso-style-next:Normal; margin:0cm; margin-bottom:.0001pt; mso-line-height-alt:10.55pt; mso-pagination:widow-orphan; mso-layout-grid-align:none; text-autospace:none; font-size:12.0pt; font-family:"Book Antiqua","serif"; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} span.A4 {mso-style-name:A4; mso-style-priority:99; mso-style-unhide:no; mso-style-parent:""; mso-ansi-font-size:9.5pt; mso-bidi-font-size:9.5pt; font-family:"Courier Std","serif"; mso-ascii-font-family:"Courier Std"; mso-hansi-font-family:"Courier Std"; mso-bidi-font-family:"Courier Std"; color:black;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 72.0pt 72.0pt 72.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt; &lt;/p&gt;&lt;div align="center"&gt; &lt;table class="MsoNormalTable" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr style="height: 12.9pt;"&gt; &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 83.4pt; height: 12.9pt;" valign="top" width="111"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 77.95pt; height: 12.9pt;" valign="top" width="104"&gt; &lt;p class="Pa55"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Parameter&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 99.2pt; height: 12.9pt;" valign="top" width="132"&gt; &lt;p class="Pa55"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Data type&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 91.9pt; height: 12.9pt;" valign="top" width="123"&gt; &lt;p class="Pa55"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Default value&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: solid solid solid none; border-color: windowtext windowtext windowtext -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 93pt; height: 12.9pt;" valign="top" width="124"&gt; &lt;p class="Pa55"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Description&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr style="height: 24.15pt;"&gt; &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 83.4pt; height: 24.15pt;" valign="top" width="111"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 77.95pt; height: 24.15pt;" valign="top" width="104"&gt; &lt;p class="Pa0"&gt;&lt;span class="A4"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;text&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 99.2pt; height: 24.15pt;" valign="top" width="132"&gt; &lt;p class="Pa0"&gt;&lt;span class="A4"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;String&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 91.9pt; height: 24.15pt;" valign="top" width="123"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;—&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 93pt; height: 24.15pt;" valign="top" width="124"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Defines the text you want to display.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr style="height: 12.75pt;"&gt; &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 83.4pt; height: 12.75pt;" valign="top" width="111"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 77.95pt; height: 12.75pt;" valign="top" width="104"&gt; &lt;p class="Pa0"&gt;&lt;span class="A4"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;font&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 99.2pt; height: 12.75pt;" valign="top" width="132"&gt; &lt;p class="Pa0"&gt;&lt;span class="A4"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Font3D&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 91.9pt; height: 12.75pt;" valign="top" width="123"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;—&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 93pt; height: 12.75pt;" valign="top" width="124"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Sets the font of the text.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr style="height: 12.75pt;"&gt; &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 83.4pt; height: 12.75pt;" valign="top" width="111"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 77.95pt; height: 12.75pt;" valign="top" width="104"&gt; &lt;p class="Pa0"&gt;&lt;span class="A4"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;material&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 99.2pt; height: 12.75pt;" valign="top" width="132"&gt; &lt;p class="Pa0"&gt;&lt;span class="A4"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Letter3DMaterial&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 91.9pt; height: 12.75pt;" valign="top" width="123"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;—&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 93pt; height: 12.75pt;" valign="top" width="124"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Sets the text material.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr style="height: 24.15pt;"&gt; &lt;td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 83.4pt; height: 24.15pt;" valign="top" width="111"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 77.95pt; height: 24.15pt;" valign="top" width="104"&gt; &lt;p class="Pa0"&gt;&lt;span class="A4"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;name&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 99.2pt; height: 24.15pt;" valign="top" width="132"&gt; &lt;p class="Pa0"&gt;&lt;span class="A4"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;String&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 91.9pt; height: 24.15pt;" valign="top" width="123"&gt; &lt;p class="Pa55"&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;null&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 93pt; height: 24.15pt;" valign="top" width="124"&gt; &lt;p class="Pa55"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;An optional name for the &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;Text3D&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black;"&gt;instance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt; &lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Text3D &lt;/em&gt;is inherited from DisplayObject3D, so we can position, rotate, and scale the instance.&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;text3D.x = 800;&lt;br&gt;text3D.y = 400;&lt;br&gt;text3D.localRotationY = -30;&lt;br&gt;text3D.scale = 2;&lt;br&gt;&lt;/pre&gt;&lt;p&gt;But &lt;em&gt;Text3D &lt;/em&gt;has more to offer, as it has the following properties that format the text:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;align&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;letterSpacing&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;lineSpacing&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The &lt;em&gt;align &lt;/em&gt;property aligns the text to the left (default), right, or center, and takes a string:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;"&lt;em&gt;left&lt;/em&gt;"&lt;/li&gt;&lt;li&gt;"&lt;em&gt;right&lt;/em&gt;"&lt;/li&gt;&lt;li&gt;"&lt;em&gt;center&lt;/em&gt;"&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The following code aligns the text to the right:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;text3D.align = "right";&lt;br&gt;&lt;/pre&gt;&lt;p&gt;To set the amount of space that is distributed between all characters, you can set&lt;em&gt;letterSpacing&lt;/em&gt;.&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;text3D.letterSpacing = -3;&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Notice that we didn't import any classes from the &lt;em&gt;flash.text&lt;/em&gt; package. Although these properties are named after Flash &lt;em&gt;TextField &lt;/em&gt;properties, they are actually created and set in &lt;em&gt;Text3D&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;The &lt;em&gt;lineSpacing &lt;/em&gt;property is the equivalent of &lt;em&gt;leading &lt;/em&gt;in Flash's &lt;em&gt;TextFormat &lt;/em&gt;class and defines the amount of vertical space between lines:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;text3D.lineSpacing = -30;&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Creating multiline text requires only a regular line break—&lt;em&gt;n&lt;/em&gt;—to go to a new line.&lt;/p&gt;&lt;p&gt;You can also add an outline to the text. The outline is defined by three properties of the material such as line thickness, line alpha, and line color:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;text3D.material.lineThickness = 2;&lt;br&gt;text3D.material.lineAlpha = 1;&lt;br&gt;text3D.material.lineColor = 0xFF0000;&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Finally, we add the &lt;em&gt;text3D &lt;/em&gt;instance to the scene:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;scene.addChild(text3D);&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Publishing this example should show you the text that we have passed, multilined, aligned to the right, and last but not least, in 3D:&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.packtpub.com/files/images/papervision-article1-image1.png"&gt;&lt;/p&gt;&lt;p&gt;The classes that we have described make it quite simple to get 3D text onto your screen. But what if we do not want to limit ourselves to the four font types that Papervision3D has incorporated?&lt;/p&gt;&lt;h1&gt;Font creation&lt;/h1&gt;&lt;p&gt;In order to use other fonts in Papervision3D, we need to create our own custom &lt;em&gt;Font3D &lt;/em&gt;classes. Although this may sound pretty daunting, it is not hard at all, thanks to a tool by Mathieu Badimon, the developer of Five3D.&lt;/p&gt;&lt;p style="margin-left: 40px; margin-right: 40px;"&gt;&lt;i&gt;&lt;strong&gt;Five3D &lt;/strong&gt;is a 3D engine written in ActionScript 3.0 that lets you create interactive vector-based 3D animations. See &lt;a target="_blank" href="http://five3d.mathieu-badimon.com"&gt;http://five3d.mathieu-badimon.com&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;In short, downloading the tool and placing in it the correct folder will create a new panel inside the Flash IDE. When the panel is opened, you can choose a font and the tool will generate an ActionScript class file that contains vector data about the font. The following screenshot shows the panel:&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.packtpub.com/files/images/papervision-article1-image2.png"&gt;&lt;/p&gt;&lt;p&gt;Go to &lt;a target="_blank" href="http://code.google.com/p/five3d/downloads/list"&gt;http://code.google.com/p/five3d/downloads/list&lt;/a&gt; and download the latest release, which was &lt;em&gt;FIVe3D_make_typography_v2.0.zip&lt;/em&gt; at the time of writing.&lt;/p&gt;&lt;p&gt;In side the ZIP file you will find a SWF and a PDF file. The PDF contains instructions on where to place the SWF and how to create a font file. Read these instructions carefully and create a file with the font of your choice.&lt;/p&gt;&lt;p style="margin-left: 40px; margin-right: 40px;"&gt;&lt;i&gt;In the instructions, a WindowSWF folder is mentioned. The path to this folder is as follows:&lt;br&gt;On Windows:&lt;br&gt;C:Program FilesAdobeAdobe Flash CS4enFirst RunWindowSWF&lt;br&gt;On Mac OS X:&lt;br&gt;UsersUsernameLibraryApplication SupportAdobeFlashCS4enConfigurationWindowSWF&lt;br&gt;Where it says FlashCS4 in the path, it can also be FlashCS3, depending on the version you use. Note that on Mac OS X the generated font file does not end up in the folder where you saved your FLA, but in the root drive &lt;strong&gt;Macintosh HD&lt;/strong&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;When you have created a font file, which contains an ActionScript class, there are a few things to be done before we can use it. Let's assume we have exported a font file that contains data of the &lt;strong&gt;Courier &lt;/strong&gt;font and thus is called &lt;em&gt;Courier.as&lt;/em&gt;:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Create a folder named &lt;em&gt;five3D &lt;/em&gt;inside your &lt;em&gt;src &lt;/em&gt;folder. Inside the &lt;em&gt;five3D&lt;/em&gt; folder, create a folder named &lt;em&gt;typography&lt;/em&gt;. Save the font file in the&lt;em&gt;typography &lt;/em&gt;folder.&lt;/li&gt;&lt;li&gt;Open the font file and add the following import to the first line of the class it contains:&lt;/li&gt;&lt;ul&gt;&lt;pre&gt;import org.papervision3d.typography.Font3D;&lt;br&gt;&lt;/pre&gt;&lt;/ul&gt;&lt;li&gt;Extend the font class with the &lt;em&gt;Font3D &lt;/em&gt;class, so that the first line of the class definition looks like this:&lt;/li&gt;&lt;ul&gt;&lt;pre&gt;public class Courier extends Font3D{&lt;br&gt;&lt;/pre&gt;&lt;/ul&gt;&lt;li&gt;Add the following three methods to the class definition:&lt;/li&gt;&lt;ul&gt;&lt;pre&gt;{&lt;br&gt; if(!__initialized)initialize();&lt;br&gt; return __motifs;&lt;br&gt;}&lt;br&gt;override public function get widths():Object&lt;br&gt;{&lt;br&gt; if(!__initialized)initialize();&lt;br&gt; return __widths;&lt;br&gt;}&lt;br&gt;override public function get height():Number&lt;br&gt;{&lt;br&gt; if(!__initialized)initialize();&lt;br&gt; return __heights;&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;The class is now compatible with Papervision3D. Let's return to our previous example where we instantiated the &lt;em&gt;HelveticaBold &lt;/em&gt;font and see how we can get this new font working. First we import the font class:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;import five3D.typography.Courier;&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Then, all you have to do is alter the line that instantiates the font:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;font3D = new Courier();&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Publishing the file should now show you the font that you exported with the tool, in our example &lt;em&gt;Courier&lt;/em&gt;.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.packtpub.com/files/images/papervision-article1-image3.png"&gt;&lt;/p&gt;&lt;p style="margin-left: 40px; margin-right: 40px;"&gt;&lt;i&gt;For further reading about font creation, VectorVision, and Papervision3D, visit &lt;a target="_blank" href="http://code.google.com/p/vectorvision/wiki/FontCreation"&gt;http://code.google.com/p/vectorvision/wiki/FontCreation&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="font-weight: bold; text-align: center;"&gt;Text3DExample&lt;/p&gt;&lt;hr size="1" color="#ff9933" noshade="noshade"&gt;&lt;br&gt;&lt;div class="header"&gt;Papervision3D Essentials&lt;/div&gt;&lt;div style="line-height: 0.4em;"&gt;&amp;nbsp;&lt;/div&gt; &lt;table width="100%" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="99"&gt; &lt;a href="http://www.packtpub.com/papervision3d-essentials/mid/310809tn2fty?utm_source=Jeffwinder.nl&amp;utm_medium=affiliate&amp;utm_content=authorsite&amp;utm_campaign=mdb_000434"&gt;&lt;img title="Papervision3D Essentials" class="left" alt="Papervision3D Essentials" src="http://images.packtpub.com/images/100x123/1847195725.png" width="99" border="0" height="123"&gt;&lt;/a&gt; &lt;/td&gt; &lt;td valign="top"&gt;Create interactive Papervision 3D applications with stunning effects and powerful animations&lt;ul&gt;&lt;li&gt;Build stunning, interactive Papervision3D applications from scratch&lt;/li&gt;&lt;li&gt;Export and import 3D models from Autodesk 3ds Max, SketchUp and Blender to Papervision3D&lt;/li&gt;&lt;li&gt;In-depth coverage of important 3D concepts with demo applications, screenshots and example code.&lt;/li&gt;&lt;li&gt;Step-by-step guide for beginners and professionals with tips and tricks based on the authors’ practical experience&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.packtpub.com/papervision3d-essentials/mid/310809tn2fty?utm_source=Jeffwinder.nl&amp;utm_medium=affiliate&amp;utm_content=authorsite&amp;utm_campaign=mdb_000434"&gt;http://www.packtpub.com/papervision3d-essentials/book&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;hr size="1" color="#ff9933" noshade="noshade"&gt;&lt;h1&gt;Adding interactivity to 3D vector text and shapes&lt;/h1&gt;&lt;p&gt;Adding interactivity to 3D vector objects basically works the same as adding interactivity to any other 3D object. You can use the &lt;em&gt;InteractiveScene3DEvent&lt;/em&gt;. However, to increase the accuracy you should import &lt;em&gt;VectorShapeHitTest&lt;/em&gt;, which is located in the &lt;em&gt;org.papervision3d.core.render.command&lt;/em&gt; package, and add the following line at the top of your &lt;em&gt;init()&lt;/em&gt; method:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;VectorShapeHitTest.instance.assignViewport(viewport);&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Another aspect worth taking a look at, is adding interactivity to 3D text. If you would try to add an event listener to a &lt;em&gt;Text3D &lt;/em&gt;instance directly, you are out of luck. Adding interactivity is done by adding listeners to the letters of the text. Let's see how that works.&lt;/p&gt;&lt;h3&gt;Adding interactivity to 3D text&lt;/h3&gt;&lt;p&gt;Aga in, we will take the &lt;em&gt;Text3DTemplate &lt;/em&gt;as our starting point. We will create a simple example with some 3D text and make it interactive. When the mouse hovers a letter, it will turn red and the color of all the other letters will change randomly. When the mouse leaves the letter, then the color of all letters will change randomly. First, we create some 3D text in the &lt;em&gt;init()&lt;/em&gt; method.&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;var text:String = "Interactive Text3D";&lt;br&gt;material = new Letter3DMaterial(0xFFFFFF);&lt;br&gt;material.interactive = true;&lt;br&gt;font3D = new HelveticaBold();&lt;br&gt;text3D = new Text3D(text,font3D,material);&lt;br&gt;text3D.scale = 2;&lt;br&gt;scene.addChild(text3D);&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Set the interactive property of the material to &lt;em&gt;true &lt;/em&gt;to enable interactivity. Also, let the &lt;em&gt;BasicView &lt;/em&gt;class know that you want to make the viewport interactive, by adding the &lt;em&gt;super()&lt;/em&gt; call in the constructor and setting the fourth parameter to &lt;em&gt;true&lt;/em&gt;.&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;super(stage.stageWidth,stage.stageHeight,true,true);&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Before we add listeners and their associated methods, add the line we discussed in the previous section at the top of the &lt;em&gt;init()&lt;/em&gt; method for more precise interactivity:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;VectorShapeHitTest.instance.assignViewport(viewport);&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Now, let's add a listener to each letter of the &lt;em&gt;Text3D &lt;/em&gt;instance:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;for each(var letter:VectorLetter3D in text3D.letters)&lt;br&gt;{&lt;br&gt; letter.addEventListener(InteractiveScene3DEvent.&lt;br&gt; OBJECT_OVER,overLetterListener);&lt;br&gt; letter.addEventListener(InteractiveScene3DEvent.&lt;br&gt; OBJECT_OUT,outLetterListener);&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;p&gt;We use a &lt;em&gt;for each&lt;/em&gt; loop to add an event listener to each letter. Letters in a &lt;em&gt;Text3D&lt;/em&gt; instance are of the &lt;em&gt;VectorLetter3D &lt;/em&gt;type, so you need to import this class, which can be found in the &lt;em&gt;org.papervision3d.typography package&lt;/em&gt;. &lt;em&gt;Text3D &lt;/em&gt;has a &lt;em&gt;letters&lt;/em&gt; property, which is an array that holds the letters of the text.&lt;/p&gt;&lt;p&gt;The event handler that is associated with the &lt;em&gt;OBJECT_OVER&lt;/em&gt; event looks like this:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;private function overLetterListener(e:InteractiveScene3DEvent):void&lt;br&gt;{&lt;br&gt; for each(var letter:VectorLetter3D in text3D.letters)&lt;br&gt; {&lt;br&gt; if(letter != e.target)&lt;br&gt; {&lt;br&gt; letter.material = new Letter3DMaterial(Math.random()&lt;br&gt; * 0xFFFFFF);&lt;br&gt; letter.material.interactive = true;&lt;br&gt; }&lt;br&gt; else&lt;br&gt; {&lt;br&gt; e.target.material.fillColor = 0xFF0000;&lt;br&gt; }&lt;br&gt; }&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;p&gt;Again we use a &lt;em&gt;for each&lt;/em&gt; loop. Inside the loop, an if-else statement evaluates for each letter whether it is the one that has been hovered. If it is not, we assign a new material to the letter with a random color. If it is the letter that has been hovered over, then we change the &lt;em&gt;fillColor &lt;/em&gt;property of its material to red. Notice that we also set the &lt;em&gt;interactive &lt;/em&gt;property to &lt;em&gt;true &lt;/em&gt;when we apply new material to the letters that haven't been hovered over.&lt;/p&gt;&lt;p&gt;If you only add &lt;em&gt;target.material.fillColor = 0xFF0000&lt;/em&gt;; in the handler, the whole text would turn red on hovering a letter. This makes sense because all letters have the same material. That is why we applied a new material to the letters that haven't been hovered.&lt;/p&gt;&lt;p&gt;In the handler method that accompanies the &lt;em&gt;OBJECT_OUT&lt;/em&gt; event, we give each letter a random color:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;private function outLetterListener(e:InteractiveScene3DEvent):void&lt;br&gt;{&lt;br&gt; for each(var letter:VectorLetter3D in text3D.letters)&lt;br&gt; {&lt;br&gt; letter.material = new Letter3DMaterial(Math.random() * 0xFFFFFF);&lt;br&gt; letter.material.interactive = true;&lt;br&gt; }&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;&lt;p&gt;The following screenshot shows what you should see when publishing this example. The letter the mouse is over should be red, the other letters should be randomly colored.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.packtpub.com/files/images/papervision-article1-image4.png"&gt;&lt;/p&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;InteractiveText3DExample&lt;/span&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;h1&gt;Drawing vector shapes—lines, circles, and rectangles&lt;/h1&gt;&lt;p&gt;The integrated VectorVision library not only lets you create 3D text, it also provides a &lt;em&gt;VectorShape3D &lt;/em&gt;class that allows drawing basic vector shapes such as lines, circles, and rectangles. The shapes are initially drawn in 2D and then projected in 3D space.&lt;/p&gt;&lt;p&gt;Working with vector shapes requires two classes, &lt;em&gt;VectorShapeMaterial&lt;/em&gt;—located in the &lt;em&gt;org.papervision3d.materials.special&lt;/em&gt; package—and &lt;em&gt;VectorShape3D&lt;/em&gt; - located in the &lt;em&gt;org.papervision3d.objects.special&lt;/em&gt; package. To create a vector shape material, use the &lt;em&gt;VectorShapeMaterial &lt;/em&gt;class.&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;var material:VectorShapeMaterial = new VectorShapeMaterial();&lt;br&gt;&lt;/pre&gt;&lt;p&gt;The constructor of this class does not take any parameters.&lt;/p&gt;&lt;p&gt;When you want to draw a shape, you must instantiate &lt;em&gt;VectorShape3D&lt;/em&gt;. The following code draws a line:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;var line:VectorShape3D = new VectorShape3D(material);&lt;br&gt;line.graphics.lineStyle(2,0x00CCFF);&lt;br&gt;line.graphics.beginFill(0x666699)&lt;br&gt;line.graphics.moveTo(-300,-300);&lt;br&gt;line.graphics.lineTo(300,-300);&lt;br&gt;scene.addChild(line);&lt;br&gt;&lt;/pre&gt;&lt;p&gt;The first line of code instantiates the &lt;em&gt;VectorShape3D &lt;/em&gt;class, passing the material we just created. The code that then follows illustrates that vector drawing in Papervision3D is very similar to 2D drawing in Flash. The last line adds the vector shape to the scene.&lt;/p&gt;&lt;p&gt;In the &lt;em&gt;VectorShape3D &lt;/em&gt;class, an instance of the &lt;em&gt;Graphics3D &lt;/em&gt;class is created, which is the 3D equivalent of the Flash &lt;em&gt;Graphics &lt;/em&gt;class. We can call the methods in the&lt;em&gt;Graphics3D &lt;/em&gt;class the same way we call methods in the &lt;em&gt;Graphics &lt;/em&gt;class. When you create an instance of VectorShape3D, you can draw lines, circles, ellipses, and rectangles using methods such as &lt;em&gt;drawRect()&lt;/em&gt; and &lt;em&gt;lineTo()&lt;/em&gt;. Compared to the&lt;em&gt;Graphics &lt;/em&gt;class, &lt;em&gt;Graphics3D &lt;/em&gt;is a little less elaborate because it does not provide methods to draw gradient lines or fills.&lt;/p&gt;&lt;p&gt;This is how you would draw a rounded rectangle:&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;var roundedRect:VectorShape3D = new VectorShape3D(material);&lt;br&gt;scene.addChild(roundedRect);&lt;br&gt;roundedRect.graphics.lineStyle(3,0xff0000);&lt;br&gt;roundedRect.graphics.beginFill(0x666699)&lt;br&gt;roundedRect.graphics.drawRoundRect(-100,-100,200,200,20,20);&lt;br&gt;&lt;/pre&gt;&lt;p&gt;You can also draw curved lines.&lt;/p&gt;&lt;pre style="margin-left: 40px;"&gt;var curvedLine:VectorShape3D = new VectorShape3D(material);&lt;br&gt;scene.addChild(curvedLine);&lt;br&gt;curvedLine.graphics.lineStyle(2,0x00CCFF);&lt;br&gt;curvedLine.graphics.moveTo(-300,-300);&lt;br&gt;curvedLine.graphics.curveTo(0,-600,300,-300);&lt;br&gt;&lt;/pre&gt;&lt;p&gt;The following screenshots show a circle, a filled rounded rectangle, a line, and a curved line. The screenshot at the left shows a frontal view. In the screenshot at the right, the objects are rotated, offering a 3D perspective.&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img src="http://www.packtpub.com/files/images/papervision-article1-image5.png"&gt;&lt;/p&gt;&lt;div style="text-align: center;"&gt; &lt;span style="font-weight: bold;"&gt;VectorShape3DExample&lt;/span&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;h1&gt;Summary&lt;/h1&gt;&lt;p&gt;Papervision3D offers a set of easy-to-use classes to draw 3D vector shapes such as simple graphics and text. The classes were originally part of VectorVision, a separate project that was developed to create 3D vector text, but was integrated into Papervision3D.&lt;/p&gt;&lt;p&gt;3D vector graphics can be created similar to how the Flash drawing API works, with methods such as drawCircle() and lineTo(). The graphics, such as lines, circles, rectangles, and ellipses are drawn in 2D and can then be rotated to create a 3D illusion.&lt;/p&gt;&lt;p&gt;The 3D text classes allow you to create crisp looking multiline text with alignment, letter spacing, and line spacing. Although Papervision3D has only four built-in fonts, it is possible to create text with other fonts. An external tool has been discussed, which generates font classes, containing vector information about the font you want to use. These classes can easily be incorporated into your Papervision3D project.&lt;/p&gt;&lt;p&gt;You add interactivity to 3D text as well as other 3D vector shapes, similar to adding interactivity to any other 3D object.&lt;/p&gt;&lt;p&gt;In the next part, we will see how to &lt;a target="_blank" href="http://www.packtpub.com/article/3d-vector-drawing-and-text-papervision3d-part2"&gt;draw lines with &lt;em&gt;Lines3D &lt;/em&gt;and add interactivity to &lt;em&gt;Lines3D &lt;/em&gt;lines&lt;/a&gt;.&lt;/p&gt;&lt;hr size="1" color="#ff9933" noshade="noshade"&gt;&lt;br&gt;&lt;div class="header"&gt;Papervision3D Essentials&lt;/div&gt;&lt;div style="line-height: 0.4em;"&gt;&amp;nbsp;&lt;/div&gt; &lt;table width="100%" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="99"&gt; &lt;a href="http://www.packtpub.com/papervision3d-essentials/mid/310809tn2fty?utm_source=Jeffwinder.nl&amp;utm_medium=affiliate&amp;utm_content=authorsite&amp;utm_campaign=mdb_000434"&gt;&lt;img title="Papervision3D Essentials" class="left" alt="Papervision3D Essentials" src="http://images.packtpub.com/images/100x123/1847195725.png" width="99" border="0" height="123"&gt;&lt;/a&gt; &lt;/td&gt; &lt;td valign="top"&gt;Create interactive Papervision 3D applications with stunning effects and powerful animations&lt;ul&gt;&lt;li&gt;Build stunning, interactive Papervision3D applications from scratch&lt;/li&gt;&lt;li&gt;Export and import 3D models from Autodesk 3ds Max, SketchUp and Blender to Papervision3D&lt;/li&gt;&lt;li&gt;In-depth coverage of important 3D concepts with demo applications, screenshots and example code.&lt;/li&gt;&lt;li&gt;Step-by-step guide for beginners and professionals with tips and tricks based on the authors’ practical experience&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.packtpub.com/papervision3d-essentials/mid/310809tn2fty?utm_source=Jeffwinder.nl&amp;utm_medium=affiliate&amp;utm_content=authorsite&amp;utm_campaign=mdb_000434"&gt;http://www.packtpub.com/papervision3d-essentials/book&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;hr size="1" color="#ff9933" noshade="noshade"&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-8080307189171766993?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/8080307189171766993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2009/08/3d-vector-drawing-and-text-with.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/8080307189171766993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/8080307189171766993'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2009/08/3d-vector-drawing-and-text-with.html' title='3D Vector Drawing and Text with Papervision3D'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-748476398764996947</id><published>2009-07-22T08:59:00.000-07:00</published><updated>2009-08-17T14:29:09.116-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Phidgets'/><title type='text'>Make That Car Go Wild: Skoda Octavia RC Campaign Uses Wireless Live Video And Phidgets InterfaceKit</title><content type='html'>Skoda launched a campaign site today to promote their new Octavia model. For the next two weeks, everyday a brand new and slightly customized 'Octavia RC' (Remote Control) is parked in a street somewhere in the Netherlands. Installed in the car are two camera's that are connected to laptops. Using a media server makes it possible to send live(!) video that is being shown on the website.&lt;br /&gt;As a visitor of the website you can remotely manipulate several features of the car, like turning  on and off the lights, honking the horn and making the wiper blades sweep. Furthermore, you can start promotional audio jingles that are being played by a seperate set of speakers, built in behind the front bumper. &lt;br /&gt;&lt;br /&gt;My role in this project was getting the data out of the laptop that receives  the visitor's input and sending it to the outputs of an interface board, made by &lt;a href="http://www.phidgets.com/products.php?product_id=1018"&gt;Phidgets (the InterfaceKit 8/8/8)&lt;/a&gt;. The interface kit is attached to the car's electronic circuit, and voila, you can make the car do things from behind your computer at home. &lt;br /&gt;&lt;br /&gt;Rotating a little servomotor pulls the wiper blades handle up and down. This motor is also driven by a Phidgets device, the Servo 4-Motor Controller. &lt;br /&gt;&lt;br /&gt;I used Phidget's Actionscript 3.0 API, which enabled me to easily communicate with the Red5 server that takes care of sending the visitor's input to one of the laptops in the car.&lt;br /&gt;&lt;br /&gt;UPDATE &lt;br /&gt;The campaign has ended, but to see some short video's visit &lt;a href="http://www.skoda.nl/octavia/"&gt;the Skoda Octavia site&lt;/a&gt; and go to Octavia RC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-748476398764996947?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/748476398764996947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2009/07/make-that-car-go-wild-skoda-octavia-rc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/748476398764996947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/748476398764996947'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2009/07/make-that-car-go-wild-skoda-octavia-rc.html' title='Make That Car Go Wild: Skoda Octavia RC Campaign Uses Wireless Live Video And Phidgets InterfaceKit'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-3515412610375927812</id><published>2008-09-24T08:59:00.000-07:00</published><updated>2011-12-05T06:33:52.224-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UMap'/><category scheme='http://www.blogger.com/atom/ns#' term='Phidgets'/><title type='text'>BMW Interactive Test Drive with UMap and live  video / BMW Interactieve Proefrit</title><content type='html'>&lt;object width="400" height="302"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2920154&amp;amp;server=vimeo.com&amp;amp;show_title=0&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=2920154&amp;amp;server=vimeo.com&amp;amp;show_title=0&amp;amp;show_byline=0&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="302"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;I've just finished a project for the new BMW 3 Series. Visitors of the site can subscribe for an interactive test drive. During (dutch) working hours live video streams are being broadcasted from the cars using UMTS and Wowza media communication server. Also, GPS coordinates are being sent to trace the position of the cars. The positions of the two BMW's are constantly shown on an interactive map, made with the UMap component by &lt;a href="http://www.afcomponents.com/components/umap_as3/" target="blank" &gt;www.afcomponents.com&lt;/a&gt; together with  text messages that the test drivers send after their drive. People watching the live streams can also call the cars to talk to their current drivers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-3515412610375927812?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/3515412610375927812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2008/09/bmw-interactive-test-drive-with-umap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/3515412610375927812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/3515412610375927812'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2008/09/bmw-interactive-test-drive-with-umap.html' title='BMW Interactive Test Drive with UMap and live  video / BMW Interactieve Proefrit'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-3984876809570962980</id><published>2008-07-15T08:59:00.000-07:00</published><updated>2009-08-17T10:41:52.217-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UMap'/><category scheme='http://www.blogger.com/atom/ns#' term='WiiFlash'/><title type='text'>WiiFlash and the UMap v1.0 component</title><content type='html'>UMap is an ActionScript 3.0 Mapping API, released by &lt;a href="http://www.afcomponents.com" target = "blank" &gt;afcomponents&lt;/a&gt;. The free component  allows you to create maps with interactive data layers. When I was playing around with it, it suddenly ocurred to me that you can combine this with WiiFlash.&lt;br /&gt;&lt;br /&gt;So here is a video that demonstrates just that :-).&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WNArthV0wBA&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/WNArthV0wBA;showsearch=0" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;What you need  to make this work is:&lt;br /&gt;- a wii remote controller&lt;br /&gt;- a nunchuck controller&lt;br /&gt;- &lt;a href="http://www.wiiflash.org/" target = "blank"&gt;the wiiflash server and api&lt;/a&gt;&lt;br /&gt;- a bluetooth enabled computer&lt;br /&gt;&lt;br /&gt;The video shows a couple of things: &lt;br /&gt;- using the wii remote minus and plus buttons to zoom out and in.&lt;br /&gt;- using the wii remote up, down, left and right buttons to pan the map.&lt;br /&gt;- using the nunchuck joystick as your mouse (with a custom mouse cursor), including a CLICK event.&lt;br /&gt;- using the pitch and roll of the nunchuck, while holding the z button, to pan in an alternative way.&lt;br /&gt;&lt;br /&gt;Source files: &lt;a href="http://www.seedylifestyle.com/blog/WiiFlash_UMap.zip"&gt;WiiFlash_UMap.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;UPDATE 16.07.08:&lt;br /&gt;If you have a wiimote and  nunchuck you can to try it online, here is the online version:&lt;br /&gt;&lt;a href="http://www.seedylifestyle.com/wiiflash_umap/WiiFlash_Umap.html" target = "blank" &gt;&lt;br /&gt;http://www.seedylifestyle.com/wiiflash_umap/WiiFlash_Umap.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Make sure you download the latest WiiFlash server (0.4.1), because that one allows your wii controllers to send data to online swf's! It's a little buggy, so you may have to click Continue and then refresh the page once or a couple of times :-).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiiflash.bytearray.org/?page_id=50" target = "blank" &gt;Download Windows version&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lab.tojio.com/2008/04/14/open-source-wiiflash-04-server-written-in-java-for-mac-os-x/" target = "blank" &gt;&lt;br /&gt;Download Mac version&lt;/a&gt; (Alpha version, 30 Jun. 2008)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-3984876809570962980?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/3984876809570962980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2008/07/wiiflash-and-umap-v10-component.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/3984876809570962980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/3984876809570962980'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2008/07/wiiflash-and-umap-v10-component.html' title='WiiFlash and the UMap v1.0 component'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-2651056287013325808</id><published>2008-06-10T08:59:00.000-07:00</published><updated>2009-09-28T04:42:37.301-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Events'/><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><category scheme='http://www.blogger.com/atom/ns#' term='WiiFlash'/><category scheme='http://www.blogger.com/atom/ns#' term='Phidgets'/><title type='text'>Papervision3D, WiiFlash and Phidgets session at FCNY</title><content type='html'>&lt;a href="http://www.bluejaygraphics.com/FlashCodersJeff/" target = "blank" title="flash coders new york 2008 by schokker64, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3431/3830624455_2cea15accb.jpg" width="450" height="318" alt="flash coders new york 2008" /&gt;&lt;/a&gt;&lt;br /&gt;I'll be leading a session at the very friendly group of &lt;a href="http://www.flashcodersny.org/wordpress/?p=163"&gt; FlashcodersNY &lt;/a&gt; in New York City tomorrow night, at their weekly meeting.&lt;br /&gt;&lt;br /&gt;The topics will be WiiFlash, Phidgets and a little Papervision3D.&lt;br /&gt;&lt;br /&gt;Starts at 7 p.m.&lt;br /&gt;&lt;br /&gt;I'll post the source files after the session has taken place.&lt;br /&gt;&lt;br /&gt;UPDATE 11.07.08&lt;br /&gt;Consuelo Karoly has made a video of this presentation. You can see it &lt;a href="http://www.bluejaygraphics.com/FlashCodersJeff/" target="blank"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And &lt;a href="http://www.seedylifestyle.com/blog/fcny.zip" target=" blank"&gt;here&lt;/a&gt; are the sourcefiles :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-2651056287013325808?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/2651056287013325808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2008/06/wiiflash-and-phidgets-session-at-fcny.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/2651056287013325808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/2651056287013325808'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2008/06/wiiflash-and-phidgets-session-at-fcny.html' title='Papervision3D, WiiFlash and Phidgets session at FCNY'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3431/3830624455_2cea15accb_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-2008954995967376975</id><published>2008-05-13T08:59:00.000-07:00</published><updated>2009-08-17T10:42:51.339-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Actionscript 3.0'/><title type='text'>ScaleTranslator: calculating corresponding scales</title><content type='html'>&lt;object type="application/x-shockwave-flash" height="140" width="450" align="middle" data="http://www.seedylifestyle.com/blog/ScaleTranslatorTest.swf"&gt;&lt;br /&gt;&lt;param name="movie" value="http://www.seedylifestyle.com/blog/ScaleTranslatorTest.swf" /&gt;&lt;br /&gt;&lt;param name="menu" value="false" /&gt;&lt;br /&gt;&lt;param name="quality" value="high" /&gt;&lt;br /&gt;&lt;param name="scale" value="noscale" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;Suppose you have a slider with a scale of -34 to 299. And suppose you want that scale to correspond relatively to another scale, for instance a scale of 20 to 455, which represents, let's say, the x position of a sprite. &lt;br /&gt;&lt;br /&gt;I've been breaking my head several times before on how to calcultate things like this. So I took pen and paper and found out that the formula to calculate the x position corresponding to the slider value looks like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color:#333399;"&gt;b= ((a - A1) * (B2 -B1)/(A2 - A1)) + B1;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Where &lt;strong&gt;b&lt;/strong&gt; (a number in the output range) corresponds with &lt;strong&gt;a&lt;/strong&gt; (a number in the input range), and&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A1&lt;/strong&gt; is the minimum Number of the input scale&lt;br /&gt;&lt;strong&gt;A2&lt;/strong&gt; is the maximum Number of the input scale&lt;br /&gt;&lt;strong&gt;B1&lt;/strong&gt; is the minimum Number of the output scale&lt;br /&gt;&lt;strong&gt;B2&lt;/strong&gt; is the maximum Number of the output scale&lt;br /&gt;&lt;br /&gt;I've put it into a class so you can use it like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color:#333399;"&gt;var resultNumber: ScaleTranslator= new ScaleTranslator(A1, A2, B1, B2, a);&lt;br /&gt;trace("resultNumber.getResult() =" + resultNumber.getResult());&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Source and examples:&lt;a href="http://www.seedylifestyle.com/blog/scaleTranslator.zip" target = "blank" &gt; scaleTranslator.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;UPDATE 7.1.09&lt;br /&gt;I updated the ScaleTranslator class (and decided to change the name to Mapper, easier to type) so you can call a static Mapper.map() function and get the output by only using one line:&lt;br /&gt;var resultNumber: Number =  Mapper.map(A1, A2, B1, B2, a);&lt;br /&gt;You can find the Mapper class &lt;a href="http://www.jeffwinder.nl/blog/Mapper.as"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-2008954995967376975?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/2008954995967376975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2008/05/scaletranslator-calculating.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/2008954995967376975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/2008954995967376975'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2008/05/scaletranslator-calculating.html' title='ScaleTranslator: calculating corresponding scales'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-8995431367438090413</id><published>2008-04-06T08:59:00.003-07:00</published><updated>2010-08-13T02:51:49.784-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><category scheme='http://www.blogger.com/atom/ns#' term='WiiFlash'/><category scheme='http://www.blogger.com/atom/ns#' term='Phidgets'/><title type='text'>WiiFlash with Papervision3D and Phidgets Servomotor</title><content type='html'>A short video of using the Wiimote and WiiFlash to send data to a Papervision3D scene and at the same time to a servomotor.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt; &lt;param name="movie" value="http://www.youtube.com/v/IJCUslNUR2g"&gt; &lt;/param&gt; &lt;embed src="http://www.youtube.com/v/IJCUslNUR2g" type="application/x-shockwave-flash" width="425" height="350"&gt; &lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;To smoothen out the movement of the cube I used the code found here - UPDATE: link is being reported as unsafe, so i removed it, see source files for code - and I then used Tweener which makes it very smooth :-).&lt;br /&gt;&lt;br /&gt;Source files: &lt;a href="http://www.seedylifestyle.com/blog/WiiFlash_PV3D_Phidgets.zip"&gt;WiiFlash_PV3D_Phidgets.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-8995431367438090413?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/8995431367438090413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2008/04/wiiflash-with-papervision3d-and_06.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/8995431367438090413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/8995431367438090413'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2008/04/wiiflash-with-papervision3d-and_06.html' title='WiiFlash with Papervision3D and Phidgets Servomotor'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-8806911165187118212</id><published>2008-04-06T08:59:00.002-07:00</published><updated>2009-08-19T07:10:30.431-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Phidgets'/><title type='text'>Papervision3D and Phidgets</title><content type='html'>Phidgets are a set of  "plug and play"  building blocks for USB sensing and control from your PC. Think of analog sensors, servomotors, LEDs et cetera. You can use Actionscript 3.0 (and several other languages) to develop applications.&lt;br /&gt;&lt;br /&gt;In this video I show an example of using Phidgets and Papervision3D.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Yan5pB6GPcA&amp;hl=en"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Yan5pB6GPcA&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;More info: &lt;a href="http://www.phidgets.com" target="_blank"&gt;www.phidgets.com&lt;/a&gt;&lt;br /&gt;Source: &lt;a href="http://www.jeffwinder.nl/blog/PV3D_Phidgets.zip"&gt;PV3D_Phidgets.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-8806911165187118212?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/8806911165187118212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2008/04/papervision3d-and-phidgets_06.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/8806911165187118212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/8806911165187118212'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2008/04/papervision3d-and-phidgets_06.html' title='Papervision3D and Phidgets'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-3839903531235321717</id><published>2008-02-13T07:59:00.003-08:00</published><updated>2009-08-17T10:43:56.140-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><title type='text'>Papervision3D Interactive Lines</title><content type='html'>&lt;a href="http://www.jeffwinder.nl/PV3D/interactiveLines/interactiveLines.html" target="_blank"&gt;&lt;img id="BLOGGER_PHOTO_ID_5165739632706686962" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_1IF3UYiV9Tk/R7Bk06Gjj_I/AAAAAAAAACE/X4ocQWcpwnA/s320/interactiveLinesblog.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.jeffwinder.nl/PV3D/interactiveLines/interactiveLines.html" target="_blank"&gt;Here&lt;/a&gt;'s an example I made of interactive LineMaterial in PV3D 2.0. This interactivity has just been added by &lt;a href="http://www.sebleedelisle.com/?p=154" target="_blank"&gt;Seb Lee-Delisle&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Mouse over the lines to see color, alpha and rotation changes.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;Source: &lt;a href="http://www.jeffwinder.nl/blog/InteractiveLinesTest.as"&gt;InteractiveLinesTest.as&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-3839903531235321717?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/3839903531235321717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2008/02/papervision3d-interactive-lines_13.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/3839903531235321717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/3839903531235321717'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2008/02/papervision3d-interactive-lines_13.html' title='Papervision3D Interactive Lines'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_1IF3UYiV9Tk/R7Bk06Gjj_I/AAAAAAAAACE/X4ocQWcpwnA/s72-c/interactiveLinesblog.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-1333574606361217747</id><published>2008-02-13T07:59:00.002-08:00</published><updated>2009-08-17T10:44:14.813-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><title type='text'>Papervision3D lines and particles</title><content type='html'>I have been playing some more with lines and particles in &lt;a href="http://blog.papervision3d.org/" target="_blank"&gt;Papervision3D&lt;/a&gt; and came up with a little lightweight chopper.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jeffwinder.nl/PV3D/chopper/chopper.html" target="_blank"&gt;&lt;img id="BLOGGER_PHOTO_ID_5165530566583619554" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_1IF3UYiV9Tk/R6-mrqGjj-I/AAAAAAAAAB8/Xsll37MQoSw/s320/chopperblog.png" border="0" /&gt;&lt;/a&gt; It consists mainly of, you guessed it, lines and particles, except for the eye, which is MovieAssetMaterial. Don't know if this is a game, demo, experiment or test, but it sure was fun to build it.&lt;br /&gt;&lt;br /&gt;You can see it &lt;a href="http://www.jeffwinder.nl/PV3D/chopper/chopper.html" target="_blank"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-1333574606361217747?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/1333574606361217747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2008/02/papervision3d-lines-and-particles_13.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/1333574606361217747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/1333574606361217747'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2008/02/papervision3d-lines-and-particles_13.html' title='Papervision3D lines and particles'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_1IF3UYiV9Tk/R6-mrqGjj-I/AAAAAAAAAB8/Xsll37MQoSw/s72-c/chopperblog.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-8198783066390160784</id><published>2008-02-11T07:59:00.002-08:00</published><updated>2009-08-17T10:44:31.482-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><title type='text'>Papervision3D  Interactive MovieAssetParticleMaterial</title><content type='html'>Today &lt;a href="http://www.sebleedelisle.com/?p=157#more-157" target="_blank"&gt;Seb Lee-Delisle &lt;/a&gt;commited two updates to the Papervison3D library, interactive Line3D and interactive particles. Moreover, particles have new material : MovieAssetParticleMaterial.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.jeffwinder.nl/PV3D/interactiveParticles/billboarding.html" target="_blank"&gt;&lt;img id="BLOGGER_PHOTO_ID_5165520864252497858" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_1IF3UYiV9Tk/R6-d26Gjj8I/AAAAAAAAABs/9lbTRyYLmKg/s320/blogpic.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jeffwinder.nl/PV3D/interactiveParticles/billboarding.html" target="_blank"&gt;This&lt;/a&gt; is a litle demo I made with the last one. Mouse over the particles to see the interactivity.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;Source: &lt;a href="http://www.jeffwinder.nl/blog/MovieAssetParticleMaterialTest.as"&gt;MovieAssetParticleMaterialTest.as&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-8198783066390160784?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/8198783066390160784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2008/02/papervision3d-interactive_11.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/8198783066390160784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/8198783066390160784'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2008/02/papervision3d-interactive_11.html' title='Papervision3D  Interactive MovieAssetParticleMaterial'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_1IF3UYiV9Tk/R6-d26Gjj8I/AAAAAAAAABs/9lbTRyYLmKg/s72-c/blogpic.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8580677504246035010.post-7863587391803437233</id><published>2008-02-10T07:59:00.000-08:00</published><updated>2009-08-17T10:32:29.928-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Actionscript 3.0'/><title type='text'>FullScreen Class</title><content type='html'>Here's a class that lets you go fullscreen quite simple.&lt;br /&gt;&lt;br /&gt;Create a MovieClip in your .fla with two frames ('on' and 'of 'mode') with&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;stop();&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;on the first frame. Remove it from the stage and in your library fill in 'FullScreenToggle' as the Class linkage.&lt;br /&gt;&lt;br /&gt;Then instantiate this class from within your document class like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color:#333399;"&gt;var fullscreen: FullScreen = new FullScreen(this.stage, 20, 400);&lt;/span&gt;&lt;/blockquote&gt;This works in the stand alone flash player or exe file. To make it work in the browsers too, change this in your html:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="color:#333399;"&gt;param name="allowFullScreen" value="true"&lt;br /&gt;embed src="example.swf" allowFullScreen="true" ...&lt;br /&gt;AC_FL_RunContent( ... "allowFullScreen", "true", ... )&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;My chopper demo is a &lt;a href="http://www.jeffwinder.nl/PV3D/chopper/chopper.html" target="_blank"&gt;working example&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Source: &lt;a href="http://www.jeffwinder.nl/blog/FullScreen.as"&gt;FullScreen.as&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8580677504246035010-7863587391803437233?l=jeffwinder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinder.blogspot.com/feeds/7863587391803437233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jeffwinder.blogspot.com/2008/02/fullscreen-class.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/7863587391803437233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8580677504246035010/posts/default/7863587391803437233'/><link rel='alternate' type='text/html' href='http://jeffwinder.blogspot.com/2008/02/fullscreen-class.html' title='FullScreen Class'/><author><name>JeffWinder</name><uri>http://www.blogger.com/profile/16287105354598559820</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://3.bp.blogspot.com/_jPW4xbKHshY/S4pPDh9ArII/AAAAAAAAABM/Ix2OwDW-SGU/S220/JeffBlue.jpg'/></author><thr:total>1</thr:total></entry></feed>
