【问题标题】:Refreshing a Flex component刷新 Flex 组件
【发布时间】:2011-07-14 22:56:46
【问题描述】:

有没有办法将组件或应用程序刷新回其初始状态?我有一个手风琴导航器,即使我注销,它也会停留在最近选择的索引上。现在,我的注销功能将我带回到状态 (1) 的登录页面。如果我重新登录并进入手风琴,它会在我查看的最后一个选项卡上。

我希望能够从导航内的控件中清除所有数据并将导航重置为默认值。我想像,

public function logout():void{
  currentState = "NotLoggedIn"
  myAccordion.initialize(); }

会工作,但没有任何反应。这是在 Flex 4 中完成的。

我知道我可以创建一个巨大的循环来单独清除每个控件并将手风琴的 selectedIndex 设置为 0。我希望有一个更简单的解决方案。

【问题讨论】:

    标签: apache-flex actionscript-3 actionscript flash-builder mxml


    【解决方案1】:

    这取决于您所说的“状态”。

    如果您在 Flex 组件中实现了状态,您可以使用以下方法恢复到以前的状态:

    component.currentState = 'myInitialState';
    

    如果您不是明确地谈论状态,而是谈论组件属性的内部值,那么 Flex 不会保留这些属性值的历史记录。您可以自己跟踪它们并手动重置它们。

    一旦你这样做了,你的组件就会有效地处于初始状态。

    【讨论】:

    • @Flextras - 是的,我应该小心使用“状态”这个词。我没有定义 initialState。为什么调用初始化不起作用?如果我首先从显示列表中删除手风琴会起作用吗?我可以使用全局 clearAll 吗?
    • @totbar 从 DisplayList 中删除 Accordion 不会更改它的任何属性(可能除了 parent 属性)。我不知道调用 Initialize 对手风琴有什么作用。它不是 Flex LifeCycle 方法。您可能会受益于阅读 Flex 组件生命周期。 (help.adobe.com/en_US/flex/using/…)。这解释了 Flex 如何创建和初始化它的组件。组件的许多“默认”状态取决于您设置的属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 2012-06-24
    • 2011-04-28
    • 2013-03-31
    • 1970-01-01
    • 2021-08-12
    相关资源
    最近更新 更多