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

<channel>
	<title>LABS &#124; VIZAR</title>
	<atom:link href="http://labs.vizar.de/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://labs.vizar.de/blog</link>
	<description>Vizar Laboratorien</description>
	<pubDate>Thu, 10 Jul 2008 13:48:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>PaperCube without Flex and only pure AS3</title>
		<link>http://labs.vizar.de/blog/2008-07-10/papercube-without-flex-and-only-pure-as3/</link>
		<comments>http://labs.vizar.de/blog/2008-07-10/papercube-without-flex-and-only-pure-as3/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 11:41:37 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
		
		<category><![CDATA[Actionscript 3]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Datahandling]]></category>

		<category><![CDATA[GreatWhite]]></category>

		<category><![CDATA[Papercube]]></category>

		<category><![CDATA[papervision]]></category>

		<category><![CDATA[xml]]></category>

		<category><![CDATA[XMLList]]></category>

		<guid isPermaLink="false">http://labs.vizar.de/blog/?p=21</guid>
		<description><![CDATA[Because of that comment were i was asked if the papercube will be run without Flex but also with XML-files, so i looked what is the difference between Flex Datahandling and pure AS3-Datahandling with XML. There is no big difference. Of course the Main-Classes (Document-Classes) can&#8217;t extend the UIComponent-Class and must extend the MovieClip-Class to [...]]]></description>
			<content:encoded><![CDATA[<p>Because of <a href="http://labs.vizar.de/blog/2008-04-28/papercube-loading-videos-and-bitmap-at-runtime-with-papervision3d/#comment-721" >that comment</a> were i was asked if the papercube will be run without Flex but also with XML-files, so i looked what is the difference between Flex Datahandling and pure AS3-Datahandling with XML. There is no big difference. Of course the Main-Classes (Document-Classes) can&#8217;t extend the UIComponent-Class and must extend the MovieClip-Class to be visible on Stage. The main difference is to handle the XML-Data. The refactored class looks like this.</p>
<pre name="code" class="actionscript">
package net.borishorn.pv3d.data
{
	import flash.events.*;
	import flash.display.*;
	import flash.net.*;
	import flash.utils.*;

	import net.borishorn.pv3d.events.PaperEvent;

	public class PaperData extends Sprite
	{

		public var sides:XMLList;

		public function PaperData()
		{
			getData();
		}

			private function getData():void
			{
				var loader:URLLoader = new URLLoader();
				loader.dataFormat = URLLoaderDataFormat.TEXT;
				loader.addEventListener(Event.COMPLETE, resultHandler);
				loader.load(new URLRequest("xml/papercube.xml"));
			}

			private function resultHandler(event:Event):void
			{
				try
				{
					sides = new XMLList(event.target.data);
					sides = sides.children();
					dispatchEvent( new Event(PaperEvent.XML_DATA_LOADED, true, false));

				}catch (e:TypeError)
				{
					trace("There was something wrong");
					trace(e.message);

				}

			}

	}
}
</pre>
<p><a href="http://labs.vizar.de/papercube_v2/papercube_CS3.zip" onclick="javascript:pageTracker._trackPageview('/downloadslabs./papercube_v2/papercube_CS3.zip');">The whole package will be found here</a></p>
<p><a href="http://labs.vizar.de/blog/2008-04-28/papercube-loading-videos-and-bitmap-at-runtime-with-papervision3d/" >The Flex-Version is here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.vizar.de/blog/2008-07-10/papercube-without-flex-and-only-pure-as3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Five3D is now managing Bitmaps</title>
		<link>http://labs.vizar.de/blog/2008-07-08/five3d-is-now-managing-bitmaps/</link>
		<comments>http://labs.vizar.de/blog/2008-07-08/five3d-is-now-managing-bitmaps/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 15:15:05 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[actionscript]]></category>

		<category><![CDATA[five3d]]></category>

		<category><![CDATA[rotationX. rotationZ]]></category>

		<category><![CDATA[rotationY]]></category>

		<category><![CDATA[vector]]></category>

		<guid isPermaLink="false">http://labs.vizar.de/blog/?p=18</guid>
		<description><![CDATA[Yes, it&#8217;s true my favourite 3D-Engine Five3D is now competing with bitmaps and videos. All you need to do this is grabbing the new 2.1 Package of Five3D and if you plan to build some crazy apps with Flex you have to include the Flash CS3-Classes into your Flex Build Path, because Five3D 2.1  [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, it&#8217;s true my favourite 3D-Engine <a href="http://five3d.mathieu-badimon.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/five3d.mathieu-badimon.com');">Five3D</a> is now competing with bitmaps and videos. All you need to do this is grabbing the new 2.1 Package of Five3D and if you plan to build some crazy apps with Flex you have to include the Flash CS3-Classes into your Flex Build Path, because Five3D 2.1  needs to import fl.motion.Color ( don&#8217;t ask me why, ask Mathieu)</p>
<p><img src="http://labs.vizar.de/blog/wp-content/uploads/2008/07/five3dbmp_howto.jpg" alt="" title="five3dbmp_howto" width="483" height="316" class="aligncenter size-full wp-image-19" /></p>
<p>When you succeded with that step everything is ready for takeoff and you can start. My first try to bring some bitmaps into the vector-world of Five3D is this piece. The inspiration came across by a <a href="http://picasaweb.google.com/soerenrogoll/Hamburg/photo#5204804059743735650" onclick="javascript:pageTracker._trackPageview('/outbound/article/picasaweb.google.com');">photo </a>by my buddy<a href="https://www.xing.com/profile/Soeren_Rogoll" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.xing.com');"> Sören Rogoll</a> who take a picture from my closer backyard. </p>
<p><a href="http://labs.vizar.de/five3dbmp" ><img src="http://labs.vizar.de/blog/wp-content/uploads/2008/07/five3dbmp.jpg" alt="" title="five3dbmp" width="500" height="338" class="aligncenter size-full wp-image-19" /></a></p>
<p><a href="http://labs.vizar.de/five3dbmp" >Launch it!</a></p>
<p>When you click the button and the ships appear, you see bitmaps in Five3D.</p>
<pre name="code" class="actionscript">
var ship:Bitmap3D = new Bitmap3D(new Images.mary().bitmapData);
scene3D.addChild(ship);
</pre>
<p>This line adds a Bitmap3D into the DisplayList. Now you access to rotationY, rotationX, rotationZ and the z-Index. Combine it with the smooth 3D Vectors. There is a big potencial in Five3D.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.vizar.de/blog/2008-07-08/five3d-is-now-managing-bitmaps/feed/</wfw:commentRss>
		</item>
		<item>
		<title>First Steps with FIVe3D and Flex</title>
		<link>http://labs.vizar.de/blog/2008-05-12/first-steps-with-five3d/</link>
		<comments>http://labs.vizar.de/blog/2008-05-12/first-steps-with-five3d/#comments</comments>
		<pubDate>Mon, 12 May 2008 13:08:53 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[five3d]]></category>

		<category><![CDATA[flash]]></category>

		<category><![CDATA[mathieu badimon]]></category>

		<category><![CDATA[passion]]></category>

		<category><![CDATA[vektor]]></category>

		<guid isPermaLink="false">http://labs.vizar.de/blog/?p=11</guid>
		<description><![CDATA[Hola,
a few weeks ago, Mathieu Badimon published the AS3 Version of his incredible 3D-API FIVe3D and i decided to play a little with it. The demos that Badimon posted in his Lab are really stunning and when i first saw these amazing vector-driven pearls of modern flash-design, i couldnt close my mouth for a long [...]]]></description>
			<content:encoded><![CDATA[<p>Hola,<br />
a few weeks ago, Mathieu Badimon published the AS3 Version of his incredible <a href="http://five3d.mathieu-badimon.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/five3d.mathieu-badimon.com');">3D-API FIVe3D</a> and i decided to play a little with it. The demos that Badimon posted in his <a href="http://lab.mathieu-badimon.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/lab.mathieu-badimon.com');">Lab</a> are really stunning and when i first saw these amazing vector-driven pearls of modern flash-design, i couldnt close my mouth for a long time. This is what i call passion.</p>
<p><a href='http://labs.vizar.de'><img src="http://labs.vizar.de/blog/wp-content/uploads/2008/05/screen_five3d.jpg" alt="" title="screen_five3d" width="500" height="320" class="aligncenter size-full wp-image-12" /></a></p>
<p><span id="more-11"></span></p>
<p>Let&#8217;s give a try to FIV3D - it&#8217;s really fun and the API is clear and easy to understand - Combine it with Tweener (or your Tweening Engine of choice). It&#8217;s definitly worth and the performance is a lot better than Papervision.</p>
<p>See my first approach in Action <a href="http://labs.vizar.de" >here</a>.<br />
I build it with Flex, so i can add some other favourite mechanism to this demo.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.vizar.de/blog/2008-05-12/first-steps-with-five3d/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PaperCube - Loading Videos and Bitmap at runtime with Papervision3D</title>
		<link>http://labs.vizar.de/blog/2008-04-28/papercube-loading-videos-and-bitmap-at-runtime-with-papervision3d/</link>
		<comments>http://labs.vizar.de/blog/2008-04-28/papercube-loading-videos-and-bitmap-at-runtime-with-papervision3d/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 07:18:07 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[movematerial]]></category>

		<category><![CDATA[papervision]]></category>

		<category><![CDATA[runtime]]></category>

		<category><![CDATA[videostreammaterial]]></category>

		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://labs.vizar.de/blog/?p=10</guid>
		<description><![CDATA[Good morning,
instead of chilling in the sun, i decided to refactor the PaperCube. In that version, you could load videos and bitmaps at runtime, driven by a XML-File. 
Note: In some cases (i didn&#8217;t had the time to inspect the code), there is a bitmap error( ArgumentError: Error #2015: Ungültiges BitmapData.) In that case just [...]]]></description>
			<content:encoded><![CDATA[<p>Good morning,<br />
instead of chilling in the sun, i decided to refactor the <a href="http://labs.vizar.de/papercube" >PaperCube</a>. In that version, you could load videos and bitmaps at runtime, driven by a XML-File. </p>
<p>Note: In some cases (i didn&#8217;t had the time to inspect the code), there is a bitmap error( ArgumentError: Error #2015: Ungültiges BitmapData.) In that case just refresh with the f5-key and everything will works fine. Computer are sometimes like girls <img src='http://labs.vizar.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><span id="more-10"></span></p>
<p>paperdata.xml</p>
<pre name="code" class="xml">
<papercube>
	<element side="top" type="video" url="assets/video/street.flv" />
	<element side="bottom" type="image" url="assets/images/hafen.jpg" />
	<element side="left" type="image" url="assets/images/jesus.jpg" />
	<element side="right" type="image" url="assets/images/pv3d.jpg" />
	<element side="front" type="image" url="assets/images/skyline.jpg" />
	<element side="back" type="image" url="assets/images/logo.gif" />
</papercube>
</pre>
<p><br/>Check it out <a href="http://labs.vizar.de/papercube_v2" >there</a><br />
The <a href="http://labs.vizar.de/papercube_v2/srcview" >Sources will be found there</a></p>
<p>The refactored PaperCube.as</p>
<pre name="code" class="actionscript">
package net.borishorn.pv3d
{
    import caurina.transitions.Tweener;

    import flash.events.*;

    import mx.core.UIComponent;

    import net.borishorn.pv3d.data.PaperData;
    import net.borishorn.pv3d.events.PaperEvent;
    import net.borishorn.pv3d.video.PaperVideo;

    import org.papervision3d.cameras.*;
    import org.papervision3d.events.*;
    import org.papervision3d.lights.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.materials.shaders.*;
    import org.papervision3d.materials.special.*;
    import org.papervision3d.materials.utils.*;
    import org.papervision3d.objects.*;
    import org.papervision3d.objects.primitives.*;
    import org.papervision3d.objects.special.*;
    import org.papervision3d.render.*;
    import org.papervision3d.scenes.*;
    import org.papervision3d.view.*;

    public class PaperCube extends UIComponent
    {

        public var isAnimated:Boolean = true;

        private var viewport:Viewport3D;
        private var renderer:BasicRenderEngine;
        private var scene:Scene3D;
        private var camera:Camera3D;
        private var cube:Cube;

        private var top:*;
        private var bottom:*;
        private var right:*;
        private var left:*;
        private var front:*;
        private var back:*;

        private var papervideo:PaperVideo;
        private var paperdata:PaperData;
        private var isReady:Boolean = false;

        public function PaperCube()
        {
            super();

            paperdata = new PaperData();
            paperdata.addEventListener(PaperEvent.XML_DATA_LOADED, setup);

            addToStageHandler();
        }

        private function setup(e:Event):void
        {

            createViewport();
            createRenderer();
            createScene3D();
            createCamera3D();
            createMaterials();
            createCube();

            isReady = true;

        }

        public function stopAnimation():void
        {

            stage.removeEventListener(Event.ENTER_FRAME, loop);

        }

        public function startLoop():void
        {
            stage.addEventListener(Event.ENTER_FRAME, loop);

        }

        private function addToStageHandler():void
        {
            addEventListener(Event.ADDED_TO_STAGE, setListeners);

        }

        private function createViewport():void
        {

            viewport = new Viewport3D(0, 0, true, true);
            addChild(viewport);
            viewport.buttonMode = true;
            viewport.interactive = true;
            viewport.name = "cubeVP";

            viewport.interactiveSceneManager.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onObjectClick);
            viewport.addEventListener(MouseEvent.MOUSE_OUT, setListeners);
        }

        private function createRenderer():void
        {

            renderer = new BasicRenderEngine();

        }

        private function createScene3D():void
        {

            scene = new Scene3D();

        }

        private function createCamera3D():void
        {

            camera = new Camera3D();
            camera.zoom = 44;
            camera.focus = 100;
        }

        private function createMaterials():void
        {

            top =  getMaterial("top");
            top.interactive = true;
            top.name = "top";
            top.smooth = true;

            back = getMaterial("back");
            back.interactive = true;
            back.name = "back";
            back.smooth = true;

            front =  getMaterial("front");
            front.interactive = true;
            front.name = "front";
            front.smooth = true;

            bottom =  getMaterial("bottom");
            bottom.interactive = true;
            bottom.name = "bottom";
            bottom.smooth = true;

            left =  getMaterial("left");
            left.interactive = true;
            left.name = "left";
            left.smooth = true;

            right =  getMaterial("right");
            right.interactive = true;
            right.name = "right";
            right.smooth = true;

        }

        private function getMaterial(side:String):*
        {

            var cm:BitmapFileMaterial;
            var cmv:VideoStreamMaterial;

            switch(side)
            {
                case 'top':
                    if(paperdata.sides.(@side=='top').@type == 'image')
                    {
                        cm = new BitmapFileMaterial(paperdata.sides.(@side == 'top').@url);
                        return cm;

                    }else if (paperdata.sides.(@side=='top').@type == 'video')
                    {
                        papervideo = new PaperVideo(paperdata.sides.(@side == 'top').@url);
                        cmv = new VideoStreamMaterial(papervideo.videoDisplay, papervideo.videoStream);
                        return cmv;
                    }else
                    {
                        cm = new BitmapFileMaterial("assets/images/boris.jpg");
                        return cm;

                    }
                break;
                case 'bottom':
                    if(paperdata.sides.(@side=='bottom').@type == 'image')
                    {
                        cm = new BitmapFileMaterial(paperdata.sides.(@side == 'bottom').@url);
                        return cm;

                    }else if (paperdata.sides.(@side=='bottom').@type == 'video')
                    {
                        papervideo = new PaperVideo(paperdata.sides.(@side == 'bottom').@url);
                        cmv = new VideoStreamMaterial(papervideo.videoDisplay, papervideo.videoStream);
                        return cmv;
                    }else
                    {
                        cm = new BitmapFileMaterial("assets/images/boris.jpg");
                        return cm;

                    }
                break;
                case 'front':
                    if(paperdata.sides.(@side=='front').@type == 'image')
                    {
                        cm = new BitmapFileMaterial(paperdata.sides.(@side == 'front').@url);
                        return cm;

                    }else if (paperdata.sides.(@side=='front').@type == 'video')
                    {
                        papervideo = new PaperVideo(paperdata.sides.(@side == 'front').@url);
                        cmv = new VideoStreamMaterial(papervideo.videoDisplay, papervideo.videoStream);
                        return cmv;
                    }else
                    {
                        cm = new BitmapFileMaterial("assets/images/boris.jpg");
                        return cm;

                    }
                break;
                case 'back':
                    if(paperdata.sides.(@side=='back').@type == 'image')
                    {
                        cm = new BitmapFileMaterial(paperdata.sides.(@side == 'back').@url);
                        return cm;

                    }else if (paperdata.sides.(@side=='back').@type == 'video')
                    {
                        papervideo = new PaperVideo(paperdata.sides.(@side == 'back').@url);
                        cmv = new VideoStreamMaterial(papervideo.videoDisplay, papervideo.videoStream);
                        return cmv;
                    }else
                    {
                        cm = new BitmapFileMaterial("assets/images/boris.jpg");
                        return cm;

                    }
                break;
                case 'left':
                    if(paperdata.sides.(@side=='left').@type == 'image')
                    {
                        cm = new BitmapFileMaterial(paperdata.sides.(@side == 'left').@url);
                        return cm;

                    }else if (paperdata.sides.(@side=='left').@type == 'video')
                    {
                        papervideo = new PaperVideo(paperdata.sides.(@side == 'left').@url);
                        cmv = new VideoStreamMaterial(papervideo.videoDisplay, papervideo.videoStream);
                        return cmv;
                    }else
                    {
                        cm = new BitmapFileMaterial("assets/images/boris.jpg");
                        return cm;

                    }
                break;
                case 'right':
                    if(paperdata.sides.(@side=='right').@type == 'image')
                    {
                        cm = new BitmapFileMaterial(paperdata.sides.(@side == 'right').@url);
                        return cm;

                    }else if (paperdata.sides.(@side=='right').@type == 'video')
                    {
                        papervideo = new PaperVideo(paperdata.sides.(@side == 'right').@url);
                        cmv = new VideoStreamMaterial(papervideo.videoDisplay, papervideo.videoStream);
                        return cmv;
                    }else
                    {
                        cm = new BitmapFileMaterial("assets/images/boris.jpg");
                        return cm;

                    }
                break;
                default:
                    cm = new BitmapFileMaterial("assets/images/boris.jpg");
                    return cm;
                break;

            }
        }

        private function onObjectClick(event:InteractiveScene3DEvent):void
        {
            Tweener.addTween(camera, {zoom:18, time:1, transition:"easeOutBack"});
        }

        private function createCube():void
        {

            cube = new Cube(new MaterialsList({top:top,
                                               bottom:bottom,
                                               left:left,
                                               right:right,
                                               front:front,
                                               back:back }),
                                               400, 400, 400, 10, 10, 10);

        cube.name = "papercube";                     

        scene.addChild(cube);

        }

        private function setListeners(e:Event):void
        {
            Tweener.addTween(camera, {zoom:8, time:1, transition:"easeOutBack"});
            stage.addEventListener(Event.ENTER_FRAME, loop);

        }

        private function removeListeners():void
        {

            stage.removeEventListener(Event.ENTER_FRAME, loop);
        }

        private function loop(e:Event):void
        {

            var xDist:Number = mouseX - stage.stageWidth * 0.5;
            var yDist:Number = mouseY - stage.stageHeight * 0.5;

            if(isReady)
            {
                if(isAnimated)
                {

                    cube.rotationY += xDist* 0.05;
                    cube.rotationX += yDist* 0.05;
                    renderer.renderScene(scene, camera, viewport);

                }else
                {

                    renderer.renderScene(scene, camera, viewport);

                }
            }

        }

    }
}
</pre>
<p>Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.vizar.de/blog/2008-04-28/papercube-loading-videos-and-bitmap-at-runtime-with-papervision3d/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Papergrid - Get more into PV3D and Flex</title>
		<link>http://labs.vizar.de/blog/2008-04-01/papergrid-get-more-into-pv3d-and-flex/</link>
		<comments>http://labs.vizar.de/blog/2008-04-01/papergrid-get-more-into-pv3d-and-flex/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 08:40:07 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Bitmap into Flex]]></category>

		<category><![CDATA[PaperGrid]]></category>

		<category><![CDATA[papervision]]></category>

		<guid isPermaLink="false">http://labs.vizar.de/blog/?p=8</guid>
		<description><![CDATA[Ok, not that new but i think why not share that experiment. Again it`s based by a PV3D-Flash App coded by Lee Brimelow
It show how to integrate a bitmap into the Flex Framework - I like it more to code AS3 in Flex because it`s so intuitive to extend the built in Flex-Classes. How said [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, not that new but i think why not share that experiment. Again it`s based by a PV3D-Flash App coded by <a href="http://theflashblog.com" title="Lee's Flash-Blog" onclick="javascript:pageTracker._trackPageview('/outbound/article/theflashblog.com');">Lee Brimelow</a></p>
<p>It show how to integrate a bitmap into the Flex Framework - I like it more to code AS3 in Flex because it`s so intuitive to extend the built in Flex-Classes. How said it <a href="http://www.dougmccune.com/blog/" title="Doug's Blog" target="_blank" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.dougmccune.com');">Doug McCune </a>: </p>
<blockquote><p>Flex changed my life <img src='http://labs.vizar.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p></blockquote>
<p><a href="http://labs.vizar.de/papergrid" >PaperGrid in action</a><br />
<a href="http://labs.vizar.de/papergrid/srcview" >PaperGrid&#8217;s code</a></p>
<p><span id="more-8"></span></p>
<p>PaperGrid.as</p>
<pre name="code" class="actionscript">
package net.borishorn.flex.pv3d
{
    import caurina.transitions.*;

    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.events.*;
    import flash.geom.Point;

    import net.borishorn.assets.images.Images;
    import net.borishorn.flex.pv3d.utils.BitmapUtils;

    import mx.core.UIComponent;

    import org.papervision3d.cameras.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.objects.*;
    import org.papervision3d.scenes.*;

    public class PaperGrid extends UIComponent
    {
        public var con:Sprite;
        private var cam:Camera3D;
        private var scene:Scene3D;
        private var pa:Array;
        private var cm:BitmapMaterial;
        private var p:Plane;

        public function PaperGrid()
        {
            con = new Sprite();
            addChild(con);

            scene = new Scene3D(con);
            cam = new Camera3D();
            cam.zoom = 11;

            pa = new Array();

            for(var i:uint=0; i &lt; 10; i++)
            {
                for(var j:uint=0; j &lt; 10; j++)
                {

                    cm = BitmapUtils.createBitmapMaterial(Images.flexIcon);
                    cm.oneSide = false;

                    p = new Plane(cm, 50, 50);
                    p.x = j * 50 + 25;
                    p.y = i * 50 + 25;

                    scene.addChild(p);

                    pa.push({pl:p, rotY:Math.random() * 360, rotZ:Math.random() * 360, z:Math.random() * 30000});
                    p.rotationY = pa[i].rotY;
                    p.rotationZ = pa[i].rotZ;
                    p.z = pa[i].z;

                }

            }

            addEventListener(Event.ENTER_FRAME, render);

        }

        private function render(e:Event):void
        {
            for(var i:uint; i
           {
               if(checkDist(pa[i].pl))
                {

                    Tweener.addTween(pa[i].pl, {rotationY:0, rotationZ:0, z:0, time:0.3});

                }
                else
                {

                    Tweener.addTween(pa[i].pl, {rotationY:pa[i].rotY, rotationZ:pa[i].rotZ, z:pa[i].z, time:3});

                }

            }

            scene.renderCamera(cam);

        }

        private function checkDist(p:Plane):Boolean
        {
            var p1:Point = new Point(p.x, p.y);
            var p2:Point = new Point(con.mouseX, -con.mouseY);

            if(Point.distance(p1, p2)&gt; 150)
            {
                    return true;

            }

            else return false;

        }

    }    

}</pre>
]]></content:encoded>
			<wfw:commentRss>http://labs.vizar.de/blog/2008-04-01/papergrid-get-more-into-pv3d-and-flex/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PaperCube - How to use MovieMaterial in a Flex App</title>
		<link>http://labs.vizar.de/blog/2008-04-01/papercube-how-to-use-moviematerial-in-a-flex-app/</link>
		<comments>http://labs.vizar.de/blog/2008-04-01/papercube-how-to-use-moviematerial-in-a-flex-app/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 07:07:06 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://labs.vizar.de/blog/?p=7</guid>
		<description><![CDATA[Moin,moin
influenced by the one an only Lee Brimelow , who made a demo using the Great White Repository of Papervision 2.0,  in which he gave interactivity for MovieClips, i tried to make the same with a Flex based application. It`s not that easy, than it is in a Flash based app, but the good [...]]]></description>
			<content:encoded><![CDATA[<p>Moin,moin</p>
<p>influenced by the one an only <a href="http://theflashblog.com" title="Lee's Flash-Blog" target="_blank" onclick="javascript:pageTracker._trackPageview('/outbound/article/theflashblog.com');">Lee Brimelow</a> , who made a <a href="http://theflashblog.com/?p=360" title="Flash PaperCube" target="_blank" onclick="javascript:pageTracker._trackPageview('/outbound/article/theflashblog.com');">demo</a> using the Great White Repository of <a href="http://blog.papervision3d.org/" title="Papervision" target="_blank" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.papervision3d.org');">Papervision 2.0</a>,  in which he gave interactivity for MovieClips, i tried to make the same with a Flex based application. It`s not that easy, than it is in a Flash based app, but the good thing, when using the Flex Framework, that everything works, when you understand the core functionality. So that line is the magic for creating a silly cube with Papervision</p>
<pre name="code" class="actionscript">var cube_right:DisplayObject = new Images.skyline() as DisplayObject;
cube_right.name = "right";</pre>
<p>That is the same approach when using a MovieClip with the Flash IDE. But in Flex you have to cast an embedded image as a DisplayObject for the sake of interactivity.</p>
<p><a href='http://labs.vizar.de/papercube'><img src="http://labs.vizar.de/blog/wp-content/uploads/2008/04/papercube.jpg" alt="PaperCube - Screenshot" title="papercube" width="500" height="313" class="alignnone size-full wp-image-9" /></a></p>
<p><a href="http://labs.vizar.de/papercube" >Check out the app</a></p>
<p><a href="http://labs.vizar.de/papercube/srcview" >Check out the Source</a></p>
<p><a href="http://labs.vizar.de/blog/2008-04-28/papercube-loading-videos-and-bitmap-at-runtime-with-papervision3d/" >UPDATED VERSION WILL BE FOUND HERE</a></p>
<p><span id="more-7"></span></p>
<p>Here is the code of PaperCube.as</p>
<pre name="code" class="actionscript">
package net.borishorn.pv3d {
import caurina.transitions.Tweener;import flash.display.DisplayObject;
import flash.events.*;

import mx.core.UIComponent;

import net.borishorn.assets.images.Images;

import org.papervision3d.cameras.*;
import org.papervision3d.events.*;
import org.papervision3d.lights.*;
import org.papervision3d.materials.*;
import org.papervision3d.materials.shaders.*;
import org.papervision3d.materials.special.*;
import org.papervision3d.materials.utils.*;
import org.papervision3d.objects.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.objects.special.*;
import org.papervision3d.render.*;
import org.papervision3d.scenes.*;
import org.papervision3d.view.*;

public class PaperCube extends UIComponent
{
private var viewport:Viewport3D;
private var renderer:BasicRenderEngine;
private var scene:Scene3D;
private var camera:Camera3D;

private var top:MovieMaterial;
private var bottom:MovieMaterial;
private var right:MovieMaterial;
private var left:MovieMaterial;
private var front:MovieMaterial;
private var back:MovieMaterial;

private var cube:Cube;

public function PaperCube()
{
super();

createViewport();
createRenderer();
createScene3D();
createCamera3D();
createMaterials();
createCube();

addToStageHandler();

}

private function addToStageHandler():void
{
addEventListener(Event.ADDED_TO_STAGE, setListeners);

}

private function createViewport():void
{

viewport = new Viewport3D(0, 0, true, true);
addChild(viewport);
viewport.buttonMode = true;
viewport.addEventListener(MouseEvent.MOUSE_OUT, setListeners);
viewport.name = "cubeVP";

}

private function createRenderer():void
{

renderer = new BasicRenderEngine();

}

private function createScene3D():void
{

scene = new Scene3D();
}

private function createCamera3D():void
{

camera = new Camera3D();
camera.zoom = 44;
camera.focus = 100;
}

private function createMaterials():void
{

var cube_front:DisplayObject = new Images.animated() as DisplayObject;
cube_front.name = "front";

var cube_back:DisplayObject = new Images.boris() as DisplayObject;
cube_back.name = "back";

var cube_top:DisplayObject = new Images.jesus() as DisplayObject;
cube_top.name = "top";

var cube_bottom:DisplayObject = new Images.hafen() as DisplayObject;
cube_bottom.name = "bottom";

var cube_left:DisplayObject = new Images.amsterdam() as DisplayObject;
cube_left.name = "left";

var cube_right:DisplayObject = new Images.skyline() as DisplayObject;
cube_right.name = "right";

top =  new MovieMaterial(cube_top,true,true);
top.interactive = true;
top.name = "top";
top.smooth = true;

back =  new MovieMaterial(cube_back,true,true);
back.interactive = true;
back.name = "back";
back.smooth = true;

front =  new MovieMaterial(cube_front,true,true);
front.interactive = true;
front.name = "front";
front.smooth = true;

bottom =  new MovieMaterial(cube_bottom,true,true);
bottom.interactive = true;
bottom.name = "bottom";
bottom.smooth = true;

left =  new MovieMaterial(cube_left,true,true);
left.interactive = true;
left.name = "left";
left.smooth = true;

right =  new MovieMaterial(cube_right,true,true);
right.interactive = true;
right.name = "right";
right.smooth = true;

cube_front.addEventListener(MouseEvent.CLICK, gotoLink);
cube_back.addEventListener(MouseEvent.CLICK, gotoLink);
cube_top.addEventListener(MouseEvent.CLICK, gotoLink);
cube_bottom.addEventListener(MouseEvent.CLICK, gotoLink);
cube_left.addEventListener(MouseEvent.CLICK, gotoLink);
cube_right.addEventListener(MouseEvent.CLICK, gotoLink);
}

private function gotoLink(e:Event):void
{
trace("clicke" + e.target.name);
switch(e.target.name)
{
case "top":

trace(top.movie);
Tweener.addTween(cube, {rotationY:0, rotationX:0, time:1, transition:"easeOutBack", onComplete:removeListeners});
Tweener.addTween(camera, {zoom:18, time:1, transition:"easeOutBack"});

break;
case "back":

Tweener.addTween(cube, {rotationY:0, rotationX:0, time:1, transition:"easeOutBack", onComplete:removeListeners});
Tweener.addTween(camera, {zoom:18, time:1, transition:"easeOutBack"});

break;
case "bottom":

Tweener.addTween(cube, {rotationY:0, rotationX:0, time:1, transition:"easeOutBack", onComplete:removeListeners});
Tweener.addTween(camera, {zoom:18, time:1, transition:"easeOutBack"});

break;
case "front":

Tweener.addTween(cube, {rotationY:0, rotationX:0, time:1, transition:"easeOutBack", onComplete:removeListeners});
Tweener.addTween(camera, {zoom:18, time:1, transition:"easeOutBack"});

break;
case "right":

Tweener.addTween(cube, {rotationY:0, rotationX:0, time:1, transition:"easeOutBack", onComplete:removeListeners});
Tweener.addTween(camera, {zoom:18, time:1, transition:"easeOutBack"});

break;
case "left":

Tweener.addTween(cube, {rotationY:360, rotationX:0, time:1, transition:"easeOutBack", onComplete:removeListeners});
Tweener.addTween(camera, {zoom:18, time:1, transition:"easeOutBack"});

break;

}

trace(e.target.name);

}

private function createCube():void
{

cube = new Cube(new MaterialsList({top:top,
bottom:bottom,
left:left,
right:right,
front:front,
back:back }),
400, 400, 400, 10, 10, 10);

scene.addChild(cube);

}

private function setListeners(e:Event):void
{
Tweener.addTween(camera, {zoom:8, time:1, transition:"easeOutBack"});
stage.addEventListener(Event.ENTER_FRAME, loop);

}

private function removeListeners():void
{

stage.removeEventListener(Event.ENTER_FRAME, loop);
}

private function loop(e:Event):void
{

var xDist:Number = mouseX - stage.stageWidth * 0.5;
var yDist:Number = mouseY - stage.stageHeight * 0.5;

cube.rotationY += xDist* 0.05;
cube.rotationX += yDist* 0.05;

renderer.renderScene(scene, camera, viewport);
}

}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://labs.vizar.de/blog/2008-04-01/papercube-how-to-use-moviematerial-in-a-flex-app/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Flex BulkLoader</title>
		<link>http://labs.vizar.de/blog/2007-12-20/flexbulkloader/</link>
		<comments>http://labs.vizar.de/blog/2007-12-20/flexbulkloader/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 15:09:53 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Arthur Debert]]></category>

		<category><![CDATA[Bulk Loader]]></category>

		<category><![CDATA[Preloading Flex]]></category>

		<guid isPermaLink="false">http://labs.vizar.de/blog/?p=6</guid>
		<description><![CDATA[Today i&#8217;ve played a little bit with Arthus Debert&#8217;s BulkLoader and put it together in a really simple Flex-Application. It does nothing more than loading content in a streamlined form, so the perfomance for asset-overheaded applications should be better. Next time i give Donovan Adams QueueLoader a try.

ItemLoader.as

package loading

{

 import br.com.stimuli.loading.BulkLoader;

 import br.com.stimuli.loading.BulkProgressEvent;
 import caurina.transitions.Tweener;

 [...]]]></description>
			<content:encoded><![CDATA[<p>Today i&#8217;ve played a little bit with <a href="http://code.google.com/p/bulk-loader/" title="BulkLoader" target="_blank" onclick="javascript:pageTracker._trackPageview('/outbound/article/code.google.com');">Arthus Debert&#8217;s BulkLoader</a> and put it together in a really simple Flex-Application. It does nothing more than loading content in a streamlined form, so the perfomance for asset-overheaded applications should be better. Next time i give <a href="http://blog.hydrotik.com/2007/12/13/queueloader-as3-rev27/" title="QueueLoader" target="_blank" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.hydrotik.com');">Donovan Adams QueueLoader</a> a try.</p>
<p><span id="more-6"></span></p>
<p>ItemLoader.as</p>
<pre name="code" class="actionscript">
package loading

{

 import br.com.stimuli.loading.BulkLoader;

 import br.com.stimuli.loading.BulkProgressEvent;
 import caurina.transitions.Tweener;

 import flash.display.Bitmap;

 import flash.display.Sprite;

 import flash.events.*;

 import flash.net.URLRequest;

 import mx.core.UIComponent;

public class ItemLoader extends UIComponent

 {

private var _bulkLoader:BulkLoader;

 	private var _bg:URLRequest;

 	private var _bmp:Bitmap;

 	private var _loaderBar:Sprite;

 	private var _sw:Number;

 	private var _sh:Number;

public function ItemLoader()

 	{

 		_bulkLoader = new BulkLoader("mainLoader");

 		_bg = new URLRequest("assets/images/bg.jpg");

		_bulkLoader.add(_bg);

		_bulkLoader.addEventListener(BulkProgressEvent.COMPLETE, onCompleteHandler);

 		_bulkLoader.addEventListener(BulkProgressEvent.PROGRESS, onProgressHandler);

		addEventListener(Event.ADDED_TO_STAGE, stageHandler);

		_bulkLoader.start();

		createLoaderBar();

 	}

private function stageHandler(e:Event):void

 	{

		_sw = stage.stageWidth;

 		_sh = stage.stageHeight;

}

private function onCompleteHandler(e:ProgressEvent):void

 	{

 		_bmp = _bulkLoader.getBitmap("assets/images/bg.jpg");

		_bmp.width = 1057;

 		_bmp.height = 600;

 		_bmp.smoothing = true;

 		_bmp.alpha = 0;

		addChild(_bmp);

 		Tweener.addTween(_bmp, {alpha:1, time:0.4, transition:"easeInQuart"});

		fadeLoaderBar()

}

private function createLoaderBar():void

 	{

		_loaderBar = new Sprite();

 		_loaderBar.graphics.beginFill(0xff0000, 1.0);

 		_loaderBar.graphics.drawRect(0,0,1, 2);

		ddChild(_loaderBar);

}

private function onProgressHandler(e:ProgressEvent):void

 	{

trace("Loaded" , e.bytesLoaded," of ",  e.bytesTotal);

_loaderBar.width = ((e.bytesLoaded / e.bytesTotal) * 1057);

}

private function fadeLoaderBar():void

 	{

Tweener.addTween(_loaderBar, {alpha:0, time:1, transition:"easeOutQuad", onComplete:removeLoaderBar })

 	}

private function removeLoaderBar():void

 	{

removeChild(_loaderBar);

 	}

}

}</pre>
<p><a href="http://labs.vizar.de/bulkloader" title="FlexBulkLoader" target="_blank" >Check out the Application </a>loading a large .jpg</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.vizar.de/blog/2007-12-20/flexbulkloader/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A so called Adventskalender</title>
		<link>http://labs.vizar.de/blog/2007-12-20/adventskalender/</link>
		<comments>http://labs.vizar.de/blog/2007-12-20/adventskalender/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 13:04:28 +0000</pubDate>
		<dc:creator>Boris</dc:creator>
		
		<category><![CDATA[Flex]]></category>

		<category><![CDATA[advent]]></category>

		<category><![CDATA[papereffects]]></category>

		<category><![CDATA[papervision]]></category>

		<category><![CDATA[tink]]></category>

		<guid isPermaLink="false">http://labs.vizar.de/blog/?p=5</guid>
		<description><![CDATA[In Germany there is a tradition, that you get some goodies in form of an calendar and i had the time to experiment with Tink&#8217;s FlexPapervisionEffects.  Next year i&#8217;m gonna take that thing to another level and fill some life in this app.
http://labs.vizar.de/advent (Because &#8216;im a smart developper view source is always enabled  [...]]]></description>
			<content:encoded><![CDATA[<p>In Germany there is a tradition, that you get some goodies in form of an calendar and i had the time to experiment with <a href="http://www.tink.ws/blog/papervision3d-effects-for-flex-source/" title="Papervision 3D" target="_blank" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.tink.ws');">Tink&#8217;s FlexPapervisionEffects</a>.  Next year i&#8217;m gonna take that thing to another level and fill some life in this app.</p>
<p><a href="http://labs.vizar.de/advent/" title="Adventskalender 2007" target="_blank" >http://labs.vizar.de/advent</a> (Because &#8216;im a smart developper view source is always enabled <img src='http://labs.vizar.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> )</p>
<p><span id="more-5"></span></p>
<pre name="code" class="actionscript">

?xml version="1.0" encoding="utf-8"?&gt;
<mx:application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    xmlns:pv3dEffects="ws.tink.flex.pv3dEffects.*"
    xmlns:advent="net.borishorn.advent.*"
    xmlns:reflector="com.rictus.reflector.*"
    xmlns:dragpanel="com.rictus.dragpanel.*"
    verticalAlign="middle" horizontalAlign="center"
    horizontalScrollPolicy="off"
    verticalScrollPolicy="off"
    backgroundColor="0x000000"
    creationComplete="init()"
    viewSourceURL="srcview/index.html"&gt;

    <mx:script>
        <!--[CDATA[
            import net.borishorn.controls.DayController;
            import net.borishorn.assets.images.Images;

            import mx.controls.Alert;

            [Bindable]-->            private var _dc:DayController;

            [Bindable]
            public var currentUser:int;

            [Bindable]
            public var _visibilty:Boolean;

            private function init():void
            {
                _dc = new DayController();

                //_currentUser = Application.application.parameters.currentUser;
                currentUser = 16568;

            }

            private function imageClick(vs:ViewStack, e:Event):void
            {

                if(_dc.checkDate(e.currentTarget.day) == true)
                {

                    vs.selectedIndex = e.currentTarget.flipToIndex;

                }else{

                    Alert.show("Dieses TÃ¼rchen ist erst am " + e.currentTarget.day.toString() + ".Dezember fÃ¼r Sie geÃ¶ffnet" , "Etwas mÃ¼ssen Sie noch warten");
                }

            }

        ]]&gt;
    </mx:script>

    <mx:style source="../styles/main.css">
<pv3deffects:flip id="hideFlip" constrain="true" type="hide" direction="left" duration="250"></pv3deffects:flip>
<pv3deffects:flip id="showFlip" constrain="true" type="show" direction="left" duration="250"></pv3deffects:flip>

    <mx:hbox backgroundcolor="0xcccccc">

    <mx:radiobuttongroup id="vis">
    <mx:radiobutton change="adventsReflector.visible=false" id="visFalse" groupname="vis" value="false" label="Reflection ausschalten">
    <mx:radiobutton change="adventsReflector.visible=true" id="visTrue" groupname="vis" value="true" label="Reflection einschalten" selected="true">

    </mx:radiobutton>    

<dragpanel:dragpanel id="mainDragPanel" left="100" top="100" verticalalign="middle" horizontalalign="center">
    title="Advents-Kalender 2007" backgroundAlpha="0"
    height="440" width="1070" verticalGap="0" horizontalGap="0" &gt;

<mx:hbox id="line1" width="100%" height="100%" horizontalgap="0" verticalgap="0">

    <mx:viewstack id="vs1" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="1" fliptoindex="1" imagesource="{Images.asl_advent_01}" click="imageClick(vs1, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="1" asl_id="16568" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs1, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

    <mx:viewstack id="vs2" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="2" fliptoindex="1" imagesource="{Images.asl_advent_02}" click="imageClick(vs2, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="2" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs2, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

    <mx:viewstack id="vs3" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="3" fliptoindex="1" imagesource="{Images.asl_advent_03}" click="imageClick(vs3, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="3" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs3, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

        <mx:viewstack id="vs4" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="4" fliptoindex="1" imagesource="{Images.asl_advent_04}" click="imageClick(vs4, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="4" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs4, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

        <mx:viewstack id="vs5" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="5" fliptoindex="1" imagesource="{Images.asl_advent_05}" click="imageClick(vs5, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="5" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs5, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

    <mx:viewstack id="vs6" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="6" fliptoindex="1" imagesource="{Images.asl_advent_06}" click="imageClick(vs6, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip" horizontalGap="0"&gt;
            <advent:back day="6" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs6, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

</mx:hbox>    

<mx:hbox id="line2" width="100%" height="100%" horizontalgap="0" verticalgap="0">

    <mx:viewstack id="vs7" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="7" fliptoindex="1" imagesource="{Images.asl_advent_07}" click="imageClick(vs7, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="7" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs7, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

    <mx:viewstack id="vs8" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="8" fliptoindex="1" imagesource="{Images.asl_advent_08}" click="imageClick(vs8, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="8" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs8, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

    <mx:viewstack id="vs9" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="9" fliptoindex="1" imagesource="{Images.asl_advent_09}" click="imageClick(vs9, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="9" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs9, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

        <mx:viewstack id="vs10" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="10" fliptoindex="1" imagesource="{Images.asl_advent_10}" click="imageClick(vs10, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="10" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs10, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

        <mx:viewstack id="vs11" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="11" fliptoindex="1" imagesource="{Images.asl_advent_11}" click="imageClick(vs11, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="11" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs11, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

    <mx:viewstack id="vs12" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="12" fliptoindex="1" imagesource="{Images.asl_advent_12}" click="imageClick(vs12, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip" horizontalGap="0"&gt;
            <advent:back day="12" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs12, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

</mx:hbox>

<mx:hbox id="line3" width="100%" height="100%" horizontalgap="0" verticalgap="0">

    <mx:viewstack id="vs13" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="13" fliptoindex="1" imagesource="{Images.asl_advent_13}" click="imageClick(vs13, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="13" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs13, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

    <mx:viewstack id="vs14" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="14" fliptoindex="1" imagesource="{Images.asl_advent_14}" click="imageClick(vs14, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="14" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs14, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

    <mx:viewstack id="vs15" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="15" fliptoindex="1" imagesource="{Images.asl_advent_15}" click="imageClick(vs15, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="15" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs15, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

        <mx:viewstack id="vs16" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="16" fliptoindex="1" imagesource="{Images.asl_advent_16}" click="imageClick(vs16, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="16" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs16, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

        <mx:viewstack id="vs17" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="17" fliptoindex="1" imagesource="{Images.asl_advent_17}" click="imageClick(vs17, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="17" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs17, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

    <mx:viewstack id="vs18" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="18" fliptoindex="1" imagesource="{Images.asl_advent_18}" click="imageClick(vs18, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip" horizontalGap="0"&gt;
            <advent:back day="18" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs18, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

</mx:hbox>

<mx:hbox id="line4" width="100%" height="100%" horizontalgap="0" verticalgap="0">

    <mx:viewstack id="vs19" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="19" fliptoindex="1" imagesource="{Images.asl_advent_19}" click="imageClick(vs19, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="19" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs19, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

    <mx:viewstack id="vs20" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="20" fliptoindex="1" imagesource="{Images.asl_advent_20}" click="imageClick(vs20, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="20" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs20, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

    <mx:viewstack id="vs21" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="21" fliptoindex="1" imagesource="{Images.asl_advent_21}" click="imageClick(vs21, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="21" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs21, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

        <mx:viewstack id="vs22" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="22" fliptoindex="1" imagesource="{Images.asl_advent_23}" click="imageClick(vs22, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="22" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs22, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

        <mx:viewstack id="vs23" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="23" fliptoindex="1" imagesource="{Images.asl_advent_23}" click="imageClick(vs23, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:back day="23" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs23, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

    <mx:viewstack id="vs24" width="175" height="100">

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip"&gt;
            <advent:front day="24" fliptoindex="1" imagesource="{Images.asl_advent_24}" click="imageClick(vs24, event)" buttonmode="true"></advent:front>
        </mx:hbox>

        <mx:hbox width="100%" height="100%">
            verticalAlign="middle" horizontalAlign="center"
            hideEffect="hideFlip" showEffect="showFlip" horizontalGap="0"&gt;
            <advent:back day="24" fliptoindex="0" imagesource="{Images.standard}" click="imageClick(vs24, event)" buttonmode="true"></advent:back>
        </mx:hbox>

    </mx:viewstack>

</mx:hbox>
</dragpanel:dragpanel>

<reflector:reflector id="adventsReflector" target="{mainDragPanel}" alpha="0.4" falloff="0.48" bluramount="0.27">
</reflector:reflector>
</mx:radiobutton></mx:radiobuttongroup>
</mx:hbox></mx:style>
</mx:application></pre>
<p>Source:<a href="http://labs.vizar.de/advent/srcview/" title="Adventskalender 2007 Sourcen" target="_blank" >http://labs.vizar.de/advent/srcview/</a></p>
<p><a href="http://labs.vizar.de/advent/srcview/" title="Adventskalender 2007 Sourcen" target="_blank" ></a></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.vizar.de/blog/2007-12-20/adventskalender/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
