Studio Developer Manual / Version 2107
Table Of ContentsThe previous sections described how the predefined actions are wrapped in buttons and added to a toolbar. However, sometimes it is necessary to develop a custom action, for example to open a special window or to start a wizard. In Section 5.1.3, “Actions” you will find a more detailed explanation of actions, but the recipe shown here should be enough in many cases.
All actions inherit from ext.Action
. For example, an action
mypackage.MyCustomAction
might look like this:
<?xml version="1.0" encoding="UTF-8"?> <local:MyCustomActionBase xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:local="mypackage.*" xmlns:exml="http://www.jangaroo.net/exml/0.8" xmlns="exml:ext.config"> <fx:Script><![CDATA[ private var config:MyCustomAction; public native function MyCustomAction(config:MyCustomAction = null); ]]></fx:Script> <fx:Declarations> </fx:Declarations> </local:MyCustomActionBase>
Example 7.42. Creating a custom action
It uses the complementing MyCustomActionBase
class:
package mypackage { import ext.Action; public class MyCustomActionBase extends Action { public function MyAction(config:Action = null) { super(config); } } }
Example 7.43. Creating a custom action base class
You can access this class from ActionScript and (more commonly) from MXML. The name of the class determines the element name and its package is used as the namespace URI suffix:
... <Button> <baseAction> <mp:MyCustomAction text="do something"/> </baseAction> </Button> ...
Example 7.44. Using a custom action
For example, such a button with a base action might by added to the Favorites toolbar or the
Actions toolbar as shown in the previous sections. The previous fragment assumes that you have
defined the mp
namespace so that it references the module containing
mypackage
(xmlns:mypackage.config
).
Note that you can use all parameters inherited from ext.Action
,
like text
in the example above.