01 Sep 2010

Using getDefinitionByName() with External Library SWCs

2 Comments Flex/Flash, programing

In a recent project I was forced to dynamically generating UI Elements in flex from Strings. This is typically done using getDefinitionByName() as shown bellow. Although this works, in my app I never really know what the string is, nor do I know what the Class is named or where it is located. This becomes an issue since you must make reference to the Class somewhere in your code before it is available to the Flex framework.

This example shows the typical use of getDefinitionByName() with out any external SWC. Notice the imports and class references on the top of the Script block.

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
< ?xml version="1.0" encoding="utf-8"?>
<mx:application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:controls="com.controls.*">
 
	<mx:script>
		< ![CDATA[
			import flash.utils.getDefinitionByName;
 
                       //You must import the classes and instantiate them
			import com.controls.TestControlA;TestControlA;
			import com.controls.TestControlB;TestControlB;
 
			private function loadTestClass(name:String):void
			{
			var ClassReference:Class = getDefinitionByName(name) as Class;
           		var s:DisplayObject = (new ClassReference() as DisplayObject)
           		testContainer.addChild(s);
			}
		]]>
	</mx:script>
 
	<mx:vbox id="testContainer" />
 
	<mx:hbox id="buttonBar">
<!--You have to place the entire package location in the string-->
		<mx:button label="Test A" click="loadTestClass('com.controls.TestControlA')" />
		<mx:button label="Test B" click="loadTestClass('com.controls.TestControlB')" />
	</mx:hbox>
</mx:application>

This won’t work since I need to make a reference to Classes that I won’t know the names of till run-time. My first step was to move a control into an external SWC, however I still am forced to make reference to the class so it becomes available, or I will get an error. This is a no go.

Read more

Popularity: 7% [?]

18 Aug 2010

Handling External SWF Events in Flex using SWFLoader

6 Comments Examples, Flex/Flash, programing, Uncategorized

It has been a while since i’ve written about Flex development so I figured i would post up some useful code for anyone interested. Recently I have been dealing with a lot of 3rd party code which relies on a huge amount of external SWF assets which load into Flex using SWFLoader. The issue i ran into is that the developer getting access to <mx:Application /> from external SWF using the MovieClip(root) approach. This approach is a slight change to the old _root of the gloomy AS2 days. This created an extremely tightly coupled app, with mysterious methods scattered around the Flex project. There was no way of knowing who was calling these methods, if they where deprecated, or if it was actually being used by some external SWF. Did I mention that there are 60 SWFs all with code in the timeline. It is like finding a needle in a haystack. Unfortunately for me, I wasn’t aware how tightly coupled these external swfs where and quickly proceeded to break the application whenever I attempted to refactor any code.

Obviously, calling <mx:Application /> to fake the old _root method of communicating with nested SWFs is not exactly the best way to go about this. Instead I favor using and Event driven approach.

This the code to create a simple external SWF with 5 textfields. Each textfield is clickable and will dispatch a custom event which broadcast the value of the textfield.
Read more

Popularity: 17% [?]

05 Dec 2008

LED Detection Experiment: Test #2

No Comments Education, Flex/Flash, project

Jumped back on the the LED experiment tonight. This time i extended the events of the 3D object to handle single and multiple LED detection events.  If the 3D object only detects a single cursor then it only rotates the axis of the object being clicks. If it detects multiple cursors then it rotates the entire environment.

Eventually i think i will make this a multiuser molecule docking simulation, but for now i am just gonna consintrate on getting a decent prototype. This weekend I am gonna extend the events to the smaller objects so i could collaborate with another player, and eventually match poloraties of the molecules.  Should be pretty interesting once it is functional.

I could think of many different types of applications for this type of navigation. However, there are also many environmental issues, such as interference from objects with bright highlights such as metal, or direct light. One option that may solve that is using infrared LED’s instead and cover the webcam lens with a filter to be able to see the infrared.

Popularity: 1% [?]

23 Sep 2008

A* Pathfinding and Away3D game

No Comments Examples, Flex/Flash

I created a very simple game using Away3d and with a A* pathfinding class which is called Detour with some help from Peter Kapelyan, who helped me tweak some of my code to make it 3D friendly.  It’s only a prototype of a game which i probably won’t enhance anytime soon, so I included the source code for anyone that is interested.  If you does anything with it drop me an email so I could check it out.

The game is pretty much a maze that gets created “on the fly” (I really hate that phrase) by intersections that close off on each turn. The goal of the game is to beat the computer to the your homebase which is the space that the computer starts on (sort of like Chinese Checkers, but with one marble and maze) The first person to get to their homebase wins.  Use your arrow keys to move around.

Source View is here, so go bananas (I like that phrase).

Popularity: 4% [?]

Get Adobe Flash playerPlugin by wpburn.com wordpress themes