![]() |
1
5
正如我在邮件列表中提到的,不幸的是,没有办法绕过它。由于无法访问类的私有成员,因此B只能对事件使用私有事件处理程序。 如果在B中调用addEventListener(),则从A开始。由于Swiz显然不在类中操作,因此它无法访问这些成员。 Swiz旨在尽可能避免应用程序代码引用(包括继承)到Swiz类。因此,您可以将其视为“从外部”配置应用程序。与JVM不同,Flash播放器只允许不访问私有成员,因此对于Swiz与代码交互,它必须是公共的。 |
![]() |
2
4
您还可以创建一个自定义名称空间,使它们不必公开,也不必私有。我使用OpenFlux最初的功能:
然后你必须添加
所以在
使代码干净,并防止公开。但有些人认为这工作太多了:)。 最好的, 兰斯 |
![]() |
3
0
对于在类之外并与类分离以调用处理程序的内容,该方法不能是私有的。因此,您有两个选择:公开它们,让Swiz调解它们(并获取所有松散耦合),或者保持它们私有,不使用事件中介。如果你认为它值得(大多数人认为值得),就用它。如果你没有,就不要。 |
![]() |
4
0
“swiz要求所有事件处理程序都是公共的,以便调解事件。” 这是真的,但是Swiz的优势在于它不会迫使你做出任何(或多或少)的设计选择,它只是提供了强大的工具(依赖注入、事件中介等),你可以选择在你认为合适的地方应用。 使用swiz根本不需要使用[mediate]标记-您仍然可以像通常那样使用addEventListener()并从私有方法进行侦听(我确信您已经很清楚)。据我所知,swiz事件中介主要用于系统/应用程序级事件。如果您在单个组件内或在紧密系列组件内调用事件侦听器,则通常使用标准事件侦听器。要在单独的、不相关的组件之间进行通信,可以使用swiz的中介来处理消息。 简而言之,在任何情况下,如果您有权访问私有事件侦听器(即在封闭组件中),您可能不会使用[中介]捕获事件,这样侦听器就可以保持私有。当您使用[mediate]标记时,事件处理程序通常位于应用程序中完全独立的位置(例如presenter-&g t;controller),在任何情况下,它都不可能是私有的。 我可能有点不舒服,但在我看来就是这样。斯威兹梅 鼓励 在某些情况下封装很弱,但对我来说,它提供了更大的模块化。 |
![]() |
nabster023 · 拉伸和旋转电影剪辑而不失真 7 年前 |
![]() |
BadmintonCat · 获取数组排序的索引 7 年前 |
![]() |
Dimentio · 无限循环(动作脚本3) 7 年前 |
![]() |
steph45 · 它们是一种在数组中找到最接近0的数字的方法吗? 7 年前 |
![]() |
AeroKLiam · AS3-使用组合框进行真/假测验 7 年前 |