4

有没有办法在 mxml 中声明一个私有/受保护甚至是静态的子组件?

当然我们可以在脚本标签中做到这一点,但还有其他方法吗?

4

3 回答 3

2

Ashier 建议使用“排除”元数据标签,但 Maskit 提供了它的限制并建议了替代解决方案:

http://blog.ashier.com/2008/03/25/hiding-properties-in-flex-components/
http://smaskit.blogspot.com/2008/07/making-mxml-subcomponent-private.html

于 2009-10-14T03:18:09.317 回答
0

在这些术语的严格含义中,不,你不能使用 mxml 来做到这一点。Luis 发布的第二个链接包含一些私有/受保护行为的解决方法。

于 2009-10-14T05:11:42.803 回答
0

我找到了解决静态问题的方法。我想要一个可以在移动应用程序的任何地方访问的快速记事本,而不会覆盖在另一个屏幕上打开的编辑。

我创建了一个记事本 mxml 控件,然后将它放在顶级应用程序 mxml 的声明部分中。在我希望备忘录出现的每个视图中,我都添加了:

import mx.core.FlexGlobals;
import components.QuickMemo;

private var memo:QuickMemo;

在视图创建完成中:

memo = FlexGlobals.topLevelApplication.memo;

在 viewActivation 代码中,我添加了:

memo.visible = false;
addElement(memo);

在 viewDeactivation 代码中,我包括:

removeElement(memo);

最终效果是在任何时候只存在一个备忘录实例,并且一个实例以它在上一次出现的视图中存在的任何状态打开。

于 2014-08-17T15:26:12.367 回答