0

我在 Flash 中制作了一个派发自定义事件的影片剪辑:MyEvent.THE_TYPE = "the_type"

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

但是,这不起作用。

在 Flash 中,我的事件气泡设置为 true。一切都在闪存中正常工作。

在 flex 中我没有使用:

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

...因为我认为这仅与自定义弹性事件有关;加上 .swc 已经编译,所以没有理由在此处的类型参数中识别事件类。

我尝试在我的事件类中创建一个“名称”属性,但没有这样做。

有什么想法吗?

谢谢

4

3 回答 3

0

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

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

告诉 Flex 编译器该事件存在,并将让它在 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
}
于 2011-05-10T15:43:57.660 回答
0

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

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

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

于 2011-05-12T09:07:28.397 回答
0

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

于 2011-05-10T15:42:34.757 回答