AS3 Game Object Editor Metadata Syntax

All variable editing goes through the Editable metatag. Depending on the variable that we want to edit, a different editing component will be created by default, although you can override this. There are currently 7 different "types":


To setup a variable to be editable in your game, simply add the Editable metadata before it.

Each type of variable that you set as editable has a "type" by default, but it can be overridden by specifying the type directly:

// As x is a Number, its default is the 'stepper' type. Here we
// override that and specify 'slider'
[Editable( type = "slider" )]
public var x:Number = 0.0;

Each Editable metadata tag takes different parameters depending on the type selected. Most are optional. For the full listing:


[Editable( type="checkbox" )]
public var visible:Boolean = true;

If your variable is a Boolean, you can leave out the type arg.


[Editable( type = "colour" )]
public var colour:uint = 0x000000;

This will let you edit an uint through a colour chooser component. It's not a default, so the type needs to be specified.


[Editable( type = "input", maxChars = 16 )]
public var name:String = null;

If your variable is a String, you can leave out the type arg. maxChars is an optional argument that lets you limit the number of characters that you can input. It defaults to 0 (any amount).


[Editable( type = "slider", min = 100.0, max = 500.0, step = 10.0 )]
public var x:Number = 0.0;

Lets you set Numbers using a slider. It's not a default, so type needs to be specified if you want to use it. The other arguments are all optional.

Static Consts

[Editable( type = "static_consts", clazz = "TypeConsts" )]
public var type:String = null;

Lets you set a value by using static consts from another class. It's not a default, so type needs to be specified. The clazz argument details the class that we want to take our consts from. It needs to be the fully qualified classname (e.g. "com.divillysausages.mypackage.MyClass"). Only static consts that are the same type as the variable will be taken into account (e.g. if your variable is a String, the only String static consts will be taken from the class).


[Editable( type = "stepper", min = 1.0, max = 10.0, step = 1.0 )]
public var count:int = 0;

Stepper is the default type for Number, int and uint, so it's not necessary to specify it. The other arguments are all optional.


[Editable( type="watch" )]
public var x:Number = 0.0;

This specifies that we just want to watch the value of this variable (for debug purposes). You can't edit these types (I understand the irony of keeping it under the Editable metatag)


Submit a comment

* indicates required