我在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'属性,但是没有这样做。
有什么想法吗?
感谢
答案 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就开始认识到组件需要自定义事件(代码提示列出了事件)。