使用其他MXML文件中定义的函数

时间:2009-05-12 09:26:58

标签: flex function mxml

我有一个Main.mxml文件和一个RoutePlanner.xmlm文件。 RoutePlanner定义了一个自定义Canvas组件,Main.mxml使用该自定义组件。

问题是RoutePlanner组件包含很多事件,例如Click()和MouseMove()等。但是这些事件引用的函数都是在Main.mxml中定义的。

Main.mxml是一个巨大的文件,我正试图分手。我不能只将函数从Main移动到自定义组件,因为函数中使用了类变量。

可以include组件中的Main,所以我可以使用这些方法吗?或者我应该将所有方法移动到AS文件,并将其包含在Main和组件中? (这需要安静一点工作)

或者是否可以在组件中创建占位符函数,并使这些占位符可绑定,而不是在Main.mxml中创建组件之后,将Main.xml中定义的实际方法绑定到组件中的事件?

提前致谢,

Kwaak

2 个答案:

答案 0 :(得分:1)

随着应用程序的复杂性增加,您应该考虑使用像Cairngorm或Pure MVC这样的微架构框架。

这些确实有助于整理您的应用程序。

查看Cairngorm的这些介绍:http://www.davidtucker.net/2008/04/01/cairngorm-videos-available-as-flv-downloads/

答案 1 :(得分:0)

使用事件发现自己:

CustomComponent.mxml:

[Event(name="onCreateRoute", type="Event")]
...  
<mx:Button label="Plan Route" click="dispatchEvent(new Event('onCreateRoute'))"/>

Main.mxml

<custom:CustomComponent onCreateRoute="CreateRoute(event);" />