MXML

Papervision3D in MXML

Wednesday, March 18th, 2009 | snippets | Comments

This falls under the “just because I can” category :)

Just copy and paste this code into any Flex project with the Papervision3D.swc in the libs and you’re good to go!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<view:BasicView 
	xmlns:mx="http://www.adobe.com/2006/mxml" 
	xmlns:view="org.papervision3d.view.*" 
	xmlns:scenes="org.papervision3d.scenes.*" 
	xmlns:primitives="org.papervision3d.objects.primitives.*" 
	xmlns:materials="org.papervision3d.materials.*" 
	opaqueBackground="#ffffff"
	added="startRendering();"
	>
	<view:scene>
		<scenes:Scene3D>
			<scenes:objects>
				<primitives:Sphere x="300">
					<primitives:material>
						<materials:ColorMaterial fillColor="0xcc0000"/>
					</primitives:material>
				</primitives:Sphere>
			</scenes:objects>
		</scenes:Scene3D>
	</view:scene>
</view:BasicView>

Tags: ,

MXML without the Flex framework

Tuesday, March 17th, 2009 | examples | Comments

This post might be a bit on the advanced side…

I was talking with Tyler earlier today and he brought up a neat little trick I hadn’t really thought of before: You can write MXML without the Flex framework. Of course you won’t get all the benefits of the Flex framework, but you’ll still be able to build out neat little MXML components with a little bit of work and, more importantly, you won’t have the ~130K of the Flex framework weighing down your app.

You’ll notice the size of the swf below is around 1K. :) Maybe if I get bored later this week I’ll write a demo Papervision3D app solely in MXML.

View .swf
source

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version="1.0" encoding="utf-8"?>
<root:ThisIsNotAUIComponent xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:root="*">
	<mx:Metadata>
		[SWF(width="900", height="480", backgroundColor="#ffffff")]
	</mx:Metadata>
 
	<!-- you won't have to do this children node garbage in Flex 4 -->
	<root:children>
		<root:RandomShape/>
		<root:RandomShape>
			<root:RandomShape/>
			<root:RandomShape>
				<root:RandomShape/>
				<root:RandomShape/>
				<root:RandomShape/>
			</root:RandomShape>
		</root:RandomShape>
		<root:RandomShape/>
		<root:RandomShape/>
		<root:RandomShape/>
		<root:RandomShape/>
		<root:RandomShape/>
		<root:RandomShape/>
		<root:RandomShape/>
		<root:RandomShape/>
		<root:RandomShape/>
		<root:RandomShape/>
		<root:RandomShape/>
		<root:RandomShape/>
		<root:RandomShape/>
		<root:RandomShape/>
	</root:children>
</root:ThisIsNotAUIComponent>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package
{
	import flash.display.DisplayObject;
	import flash.display.Sprite;
 
	[DefaultProperty("children")]
	public class ThisIsNotAUIComponent extends Sprite
	{
		[ArrayElementType("ThisIsNotAUIComponent")]
		public function get children():Array
		{
			return null;
		}
 
		public function set children(value:Array):void
		{
			for each(var child:ThisIsNotAUIComponent in value)
			{
				addChild(child);
			}			
		}		
	}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package
{
	import flash.filters.DropShadowFilter;
 
	public class RandomShape extends ThisIsNotAUIComponent
	{
		public function RandomShape()
		{
			var randomColor:Number = Math.random() * 0xffffff;
			var randomX:Number = Math.random() * 900;
			var randomY:Number = Math.random() * 480;
			graphics.beginFill(randomColor);
			graphics.drawRect(randomX - 150, randomY - 150, 150, 150);
			graphics.endFill();
 
			filters = [new DropShadowFilter()];
		}
	}
}

Tags: ,

Search

Recommended Books

Speaking at FITC Toronto

Recent Comments

 

July 2010
M T W T F S S
« May    
 1234
567891011
12131415161718
19202122232425
262728293031  

Preferred Video Tutorial Resolution

  • 1024x768 (53%, 85 Votes)
  • 1280x1024 (15%, 24 Votes)
  • 1920x1080 (15%, 24 Votes)
  • 800x600 (13%, 20 Votes)
  • 480x320 (4%, 6 Votes)
  • 640x480 (0%, 2 Votes)

Total Voters: 160

Loading ... Loading ...