Since I started with papervision the library really got me. I didn’t miss any function during the creation of this simple poetry aplication. However I must say that I did not focus on collada and importing 3D models into this little test. One thing that does concern me is the performance, hence I suspect that it is rather the flash player than papervision. Nevertheless this simple test already draws 60 percent off my core2duo laptop.
This little application makes use of dynamic font loading and uses a seperate class file to give the cubes a movieclip face with a dynamic textfield. Download the papervision-poetry source.
But the fun part stays, creating realtime interactive 3D scene’s. I have a bachelor degree in product design, and some working experience in the field. But none of the 3D things I did back then were realtime, of course you could interact with a 3D model on a very high granular level. I cannot wait to see more interference between 3D and the still flat world of internet.
It struck me that working with papervision is easy and real fun, it provides sufficient functionality to seperate a 3D model be interactive with those seperate parts, keep up the good work!
Recently at work I was looking for an actionscript accordion which was easy to customize. The goal was to create a accordion for navigation purposes. I could not find anything usefull, but fixed size accordions. I needed to create one myself.
I will explain the code shortly. Perhaps it will be usefull for somebody and safe some time. I have left the styling basic just to show the working and principle to make is easier to be customized. The visual part of the accordion is made in flash to make it easy to add mouseOver etc.
I have tried to keep the accordion principle in the main class, so that the main class could act as the director. The accordion header communicates with the main class through an custom event. An in the end it might be necessary to add an custom event to the menu items, for example to retrieve some other data through an remote call, or to switch to another page.
After this accordion I realised that the main advantage for an accordion is the possibillity to display an unknown number of items and subitems in a small place. So I decided to ad a scrollbar to supply this advantage to the accordion.
To make the scrollbar work properly I needed to add all the AccordionList as well as the Scrollbar to a seperate containerclass ( AccordionListContainer ). The next step was to update the scrollBar roperties with the setScrollProperties when the user clicks on one of the headers.
The result is a flexible accordion list class, which can be used to display anything from links to images. Since the class loads symbols it should be easy to style it to your own preferences. And of course remove my hard coded item height values.
During the development of a rather big flash video portal, I noticed some difficulties with setting paths during the stages of development. The application made a lot of connections to external data: XML, Flash Media Server 3.5 and made call with a Microsoft .NET backend through FluorineFX remoting.
At that point the designer came with a preloader, which made the preloader.swf receive the SWFObject flashvars. I have made a Flash application template that works for me and the company I work for. But I am very curious if there are other, more neat ways to over come this problem.
The main feature of this template structure is that the preloader checks whether it has received a value form SWFObject. Based on the result of this check two different functions can be called in the main class of the main flash file.These functions sets the path for the flash file to make it work in the flash IDE or on the server with in HTML wrapper, after these paths or parameters are set the function initializes the application. See the code below
var ldr:Loader = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.INIT, initListener );
var req:URLRequest = new URLRequest( mainPath );
ldr.load( req );
function initListener( e:Event ):void
if( root.loaderInfo.parameters.swfBasePath != null )
Object( ldr.content ).setSWFObjectValues( swfParams );
Object( ldr.content ).setLocalValues( );
I really would like to discuss if this is a proper solution