April 2009


Apr 8, 2009

How’s 2 out of 10?


One of my co-workers pointed me to this post on Tech Republic about 10 skills that developers will need in the next 5 years.

Now I have never considered myself a developer. My background is in art. The tech side of my career was something of an afterthought. I figured that a good painter would know how to mix paint and a good designer would be pretty handy with an x-acto knife, french curves and a ruler. So why shouldn’t I know a little more about my chosen medium.

Ten years later, the tech side of my career had arguably become the majority. That’s not a complaint. I do love working with code. But I always feel like I’m working my way through a foreign land with half a map.

I take the Tech Republic list with a grain of salt. While I have one foot in the development world, my other one is firmly planted in visual design. But it does bother me somewhat that I can only check off maybe two of those ten. I don’t think I’ll ever really need Java, but it might be the other half of my missing map.

Apr 6, 2009

Thus begins “The Fun!”


I’ve started using Flex in a big way at work. And that, of course, means that I’m at the beginning of the learning curve where the most basic issues take days to trouble shoot. Take the following example:

While creating the view for a basic MVC, I extended the Panel component, added a TextField and ran it. Flex blew up with errors.

package
{
	import flash.events.Event;

	import mx.containers.Panel;

	public class TestPanel extends Panel
	{
		private var __tempTextArea:TextArea;

		public function TestPanel()
		{
			super();
			__tempTextArea = new TextArea();
			__tempTextArea.x = 330;
			__tempTextArea.y = 82;
			__tempTextArea.width = 680;
			__tempTextArea.height = 625;
			addChild(__tempTextArea);
		}

		public function onChange(e:Event):void
		{
			trace("onChange from TestPanel");
		}

	}
}

Two days pass. Then comes a solution. It seems that any visual component in Flex MUST either extend mx.core.UIComponent or implement mx.core.IUIComponent.

package
{
	import flash.events.Event;

	import mx.containers.Panel;
	import mx.core.IUIComponent;

	public class TestPanel extends Panel implements IUIComponent
	{
		private var __tempTextArea:TextArea;

		public function TestPanel()
		{
			super();
			__tempTextArea = new TextArea();
			__tempTextArea.x = 330;
			__tempTextArea.y = 82;
			__tempTextArea.width = 680;
			__tempTextArea.height = 625;
			addChild(__tempTextArea);
		}

		public function onChange(e:Event):void
		{
			trace(”onChange from TestPanel”);
		}

	}
}

I’d point you to the line in the documentation that makes this explicit and call myself an idiot, but I can’t. The Flex documentation is extremely lacking and obfuscated. If I have a problem with Actionscript, I pop open Flash’s documentation. If I have a problem with Flex, I pop open the Google.