user3240131
user3240131

Reputation: 207

How to use an MXML component in my as3 code?

I have made a lot of research on this topic but I could not find any helping answer to my issue. I currently have a 100% as3 application. I would like to add a spark component to my stage eg a datagrid (because it is way more simple and clean to create it with mxml).

FileName : MXMLPractice.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:DataGrid x="0" y="0" width="50" height="50"
            xmlns:fx="http://ns.adobe.com/mxml/2009"
            xmlns:s="library://ns.adobe.com/flex/spark"
            xmlns:mx="library://ns.adobe.com/flex/mx">
    <s:columns>
        <s:ArrayList>
            <s:GridColumn dataField="dataField1" headerText="ColumnName1"></s:GridColumn>
            <s:GridColumn dataField="dataField2" headerText="ColumnName2"></s:GridColumn>
            <s:GridColumn dataField="dataField3" headerText="ColumnName3"></s:GridColumn>
        </s:ArrayList>
    </s:columns>
</s:DataGrid>

How can I add this component to the stage in my as3 code? Given my difficulties to find a matching answer, I guess I might be trying to do something not recommended. If that is the case, could you please advise me what to do instead?

My tests so far (compiling but not displaying anything) :

package  
{
    import flash.display.Sprite;
    import mx.events.FlexEvent;

    public class Main extends Sprite
    {
        private var practice:MXMLPractice;
        public function Main() 
        {
            practice = new MXMLPractice();
            stage.addChild(practice);
        }

    }

}

Upvotes: 0

Views: 367

Answers (2)

user3392029
user3392029

Reputation:

It's really hard task. If you want to use some simple class from Flex SDK like ObjectUtil just copy it to your classes. It will work fine because doesn't have imports. But visual components are linked with many other classes. For components like grid you have to copy dozens of classes. Each of them also have dependencies and so on. Probably it's better to modify Flash component or find open source solution.

Upvotes: 1

Nicolas Siver
Nicolas Siver

Reputation: 2885

In pure AS3 project, you should use AS3 components, that also extend UIComponent as flex components, but designed for pure as3 project. For this task, you will need fl.controls package. You can copy/past ui classes from the installation directory of Flash Professional:

c:\Program Files\Adobe\Adobe Flash CC\Common\Configuration\Component Source\ActionScript 3.0\User Interface\

Next step will be export view representation of ui components to the library in Flash IDE from components window CTRL+F7

Upvotes: 1

Related Questions