如何在我的as3代码中使用MXML组件?

时间:2014-03-09 10:58:07

标签: actionscript-3 flash flex mxml

我已经就这个主题做了很多研究,但我找不到任何帮助解决我的问题。我目前有100%as3应用程序。我想在我的舞台上添加一个spark组件,例如datagrid(因为使用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>

如何在as3代码中将此组件添加到舞台上? 鉴于我找到匹配答案的困难,我想我可能会尝试做一些不推荐的事情。如果是这种情况,请告诉我该怎么办?

到目前为止我的测试(编译但没有显示任何内容):

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);
        }

    }

}

2 个答案:

答案 0 :(得分:1)

在纯AS3项目中,您应该使用AS3组件,它还将UIComponent扩展为flex组件,但是为纯as3项目设计。对于此任务,您将需要fl.controls个包。您可以从Flash Professional的安装目录中复制/过去ui类:

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

下一步将从组件窗口CTRL+F7

将ui组件的视图表示导出到Flash IDE中的库

答案 1 :(得分:1)

这真的很难。 如果你想使用Flex SDK中的一些简单类,比如ObjectUtil,只需将它复制到你的类中。它会正常工作,因为没有导入。 但是可视组件与许多其他类相关联。对于像grid这样的组件,你必须复制几十个类。他们每个人也有依赖关系等等。 可能最好修改Flash组件或找到开源解决方案。