无法在Flash Builder中的自定义组件中声明自定义事件

时间:2012-04-04 00:03:02

标签: events flex4 flash-builder

我正在尝试创建一个datagrid组件,并希望它在创建datagrid时将事件分派给主应用程序。但是,我说错误

"Type was not found or was not a compile-time constant:dataGridComp"

"Call to a posibly undefined methoud dataGridComp"

我的组件

<?xml version="1.0" encoding="utf-8"?>

<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"

         xmlns:s="library://ns.adobe.com/flex/spark"

         xmlns:mx="library://ns.adobe.com/flex/mx">



    <fx:Metadata>   //declare my event

        [Event(name="dataGridComp", type="flash.events.Event")]

    </fx:Metadata>



    <fx:Script>

        <![CDATA[

            import mx.events.FlexEvent;



            protected function dataGrid_creationCompleteHandler(event:FlexEvent):void

            {

                // TODO Auto-generated method stub

                 var e:dataGridComp = new dataGridComp("dataGridComp"); //problem here

                dispatchEvent(e);   //want to dispatch my event object when the datagrid is created

            }



        ]]>

    </fx:Script>



    <s:DataGrid id="dataGrid" editable="true" x="51" y="34" width="734" height="153"

                creationComplete="dataGrid_creationCompleteHandler(event)" requestedRowCount="4">

      ........

      ..........

    </s:DataGrid>

</s:Group>

知道如何解决这个问题吗?我感谢任何帮助。非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以更改/考虑的几件事情:

1)要调度自定义事件,您需要使用Event类,或者创建扩展Event的自定义类,以便分发真实的Event对象。在您的情况下,仅使用自定义事件类型,请使用Event类,如下所示:

dispatchEvent( new Event("dataGridComp") );

2)在将组件添加到舞台之前调度您正在使用的creationComplete事件。由主应用程序不一定会听到由不在显示列表中的内容发送的事件。