/display-tree-builder

Primary LanguageActionScriptMIT LicenseMIT

#Display Tree Builder

A declarative language to set up trees of display objects.

###Example

var displayTree:DisplayTree = new DisplayTree();

displayTree. uses(rootView). containing.

	//Adds a Sprite with the name "Menu", containing one
	//instance of each FullScreenButton and EditButton
	a (Sprite). withTheName ("Menu"). containing.
		a (FullScreenButton).
		an (EditButton).
	end.

	//Adds 3 instances of Container, each with
	//a single instance of Icon
	times (3). a (Container). containing.
		an (Icon).
	end.
end.finish();

The DSL only allows terms where they make sense (e.g. you can not place withName after times(x)). This is especially useful in IDEs with code completion. [Warning: This feature is currently a bit shaky, so don't lean on it to heavily.]

####Creating display objects from data

It is also possible to create a display object for every item in a collection, using the item to initialize the object.

displayTree. uses (rootView). containing.

    a (Sprite). forEveryItemIn (["Spades", "Hearts", "Diamonds", "Clubs"]).
	    withTheProperty ("name"). setToThe. item

end.finish();

The collection can be an Array, a Vector, an IIterable or an IIterator (the last two from the AS3Commons Collections library)