MXML without the Flex framework
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.
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()]; } } } |
-
Guy Ritchie
-
pemeor
-
Greg
-
Greg
-
Simeon
-
david knape
-
Tyler Wright
Search
Recommended Books
Speaking at FITC Toronto
Recent Posts
- Moving to johnlindquist.com
- AsyncCommand with Robotlegs, Signals, Flight, MinimalComps
- Search Widget – Robotlegs, Signals, Flight, Minimal Comps, Yahoo Astra
- FDT Super Awesome March Deal
- haXe Tutorial
- AS3 Signals Tutorial
- Preferred Video Tutorial Resolution?
- TweenMax – Tweening a timeline (Advanced Tweening)
- Robotlegs + Flight + Union Platform
- Back in the saddle
- Eclipse Theme Designer Preview
- RobotLegs Hello World Video Tutorial
- 10 Things Every Senior Flash Developer Should Know
- Efflex – 3D Effects for Flex
- MorphController – Mighty Morphing Papervision3D
Recent Comments
- شقق للبيع في الاردن on Moving to johnlindquist.com
- Annakhan006 on Augmented Reality – Recursive Webcam
- Yarout on Augmented Reality – Recursive Webcam
- Vivon on about
- Josh @ Wall Stickers on Moving to johnlindquist.com
- list of lpn courses on SpringCamera3D and Driving a Car
- rn to bsn in montgomery al on archive
- PowerPoint Recovery on Eclipse Theme Designer Preview
- cheat mw3 on Test if a plane is within the view of the camera (aka testing if culled)
- Goa Hotels on Looking around the inside of a Sphere
Categories
Archives
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

