FLEX:flash组件没有收到它自己的自定义事件

时间:2011-05-10 15:38:04

标签: flash flex components swc dispatchevent

我在flash中制作了一个调制自定义事件的movieclip:MyEvent.THE_TYPE =“the_type”

在flex中我有:<local:my_flash_mc the_type="do_something()"

然而,这不起作用。

在flash中,我的事件气泡设置为true。闪光灯一切正常。

灵活的

我不使用:

<fx:Metadata>
  [Event(name="the_type", type="...")]  
</fx:Metadata> 

...因为我认为这仅适用于自定义flex事件;加上.swc已经编译好了,所以没有理由在这里的类型参数中识别事件类。

我尝试在我的事件类中创建一个'name'属性,但是没有这样做。

有什么想法吗?

感谢

3 个答案:

答案 0 :(得分:0)

由于Flash和Flex之间的限制,您不能在Flex中使用您的MC。您必须使用“addEventListener”手动将事件侦听器添加到MC。

答案 1 :(得分:0)

请定义“不工作”的含义。我假设您收到编译器警告。这段代码:

<fx:Metadata>
  [Event(name="the_type", type="...")]  
</fx:Metadata> 

告诉Flex Compiler该事件是否存在,并将其用于MXML中的代码提示。所以,我猜这个:

<local:my_flash_mc the_type="do_something()" />

抛出编译器错误。那是对的吗?解决方案是在ActionScript中添加事件侦听器:

my_Flash_MC_Instance.addEventListener('the_type',do_something);

在do_something处理程序方法中,您必须传递事件(MXML中不需要):

protected function do_something(event:MyEvent):void{
 // processing here
}

答案 2 :(得分:0)

请参阅:forums.adobe.com/message/3668890#3668890,详细解释我如何解决我的问题......

对我来说,主要问题是[Event ...]元数据标签。

一旦我将放入我的flash mc 中,Flex就开始认识到组件需要自定义事件(代码提示列出了事件)。