2012-04-04 48 views
0

我想创建一个DataGrid组件,并希望它在创建数据网格时将事件分派给主应用程序。但是,我得到的错误说无法在Flash Builder中的自定义组件中声明自定义事件

"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> 

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

回答

0

一对夫妇的事情,你可以改变/考虑:

1)派遣您的自定义事件,您需要使用Event类,或创建一个扩展Event自定义类,所以你可以派遣一个真正的Event对象。在你的情况下,W /只是一个自定义事件类型,使用Event类是这样的:

dispatchEvent(new Event("dataGridComp"));

2)您所使用的creationComplete事件,将组件添加到舞台前被分派。由不在显示列表中的事件派发的事件不一定会被主应用程序听到。