Unsupported features

MXHX is heavily inspired by MXML, a markup language originally introduced in Macromedia Flex. However, not all features of MXML are supported by MXHX at this time. Some missing features may be implemented in future versions of MXHX, as need arises and time allows.

Component className attribute

The className attribute of the Component tag may be used in MXML to specify a AS3 class name to associate with the generated inline component. Specifying a class name for an inline component with <mx:Component> is currently unsupported in MXHX.

Library and Definition tags

The <mx:Library> and <mx:Definition> tags were supported in MXML to provide reusable XML graphical assets to an MXML component. They are currently unsupported by MXHX.

Metadata tag

The Metadata tag was supported in MXML as a way to define AS3 metadata, like [Event], on an MXML class. A similar <mx:Metadata> tag for Haxe metadata, like @:event, will be added in a future version.

Model binding

Binding syntax with curly braces is supported inside an Model tag in MXML, but <mx:Model> in MXHX does not support binding at this time. An error will be reported.

Private tag

The Private tag was supported in MXML to provide metadata to tooling at compile-time. It is currently unsupported by MXHX.

Root implements attribute

The implements attribute was supported in MXML to add an interface to the generated class. It is currently unsupported by MXHX.

Script tag

In Flex, developers can define fields and methods on an MXML class using a <mx:Script> tag. This is currently unsupported in MXHX. Support for scripts involves integrating a custom Haxe language parser (that will need to be written in Haxe) because the Haxe macro interpreter can only parse expressions inside methods.

Developers can achieve a similar result to an <mx:Script> tag in MXHX by defining fields and methods on a superclass that is written in Haxe, or by using the MXHXComponent.build() macro.

Style tag

In Flex, developers can define CSS (Cascading Style Sheets) in an MXML class using a Style tag. None of the GUI frameworks currently supported by MXHX include support for CSS, so MXHX does not implement a similar <mx:Style> tag yet.

States

MXHX does not support states yet, and an error will be reported when attempting to use any of the following syntax for states.

  • Setting properties for specific states with propertyName.stateName="value" syntax
  • The includeIn and excludeFrom attributes
  • The <mx:Reparent> tag

Two-way binding

Two-way binding syntax is currently unsupported in all forms, including:

  • with curly braces, like destination="@{source}"
  • with the <mx:Binding twoWay="true"/> tag

However, one-way binding syntax with curly braces is supported, if the GUI framework allows it.

XML format attribute

The format attribute of the XML tag can be used in MXML to specify where to use the XML class or the XMLDocument class in AS3, but MXHX does not support an <mx:Xml> format attribute. The Haxe Xml class is always used.

XML binding

Binding syntax with curly braces is supported inside an XML tag in MXML, but <mx:Xml> in MXHX does not support binding at this time. An error will be reported.

XMLList tag

MXML could create an AS3 XMLList object containing a collection of tags. MXHX requires XML to have a single root tag.