如何在不刷新html页面或重新加载SWF文件的情况下重置/重新加载flex应用程序?

时间:2011-01-12 14:27:56

标签: flex flex3 flex4

我有一个带有主页按钮的flex应用程序。单击此按钮时,我需要重置应用程序。我不能使用navigateToURL或ExternalInterface.call(“window.location.reload”);因为重新加载swf文件是不可接受的。是否有其他方法可以实现这一目标?任何有关这方面的帮助都非常感谢。

5 个答案:

答案 0 :(得分:0)

无法从应用程序本身重新加载Flex应用程序。 你可以调用一个重新加载页面的javascript函数。 看看这个:http://livedocs.adobe.com/flex/3/html/help.html?content=passingarguments_4.html

答案 1 :(得分:0)

Flex中存在这种状态概念。 您需要做的是,保持两个状态,一个处于初始阶段(这是swf加载时的状态),另一个是用户与之交互的状态。 所以假设你有两种状态: STAT1,STAT2

只要点击主页,您就应该执行以下操作: 1.将用户带到stat2。 2.Clone stat2并将引用复制到stat1以供下次使用。 3.下次点击主页时反过来。

此致

Neeraj

答案 2 :(得分:0)

您可以将大量的Flex应用作为模块。在初始化或其他任何时候加载模块。要引用,请卸载/重新加载模块。这基本上是指应用程序

答案 3 :(得分:0)

您必须使用javascript函数,该函数将在url中使用add参数重新加载swf文件,否则它将从缓存重新加载swf。 (http://abc.com/myswffile.swf?reload=12345)。 12345 - 这是一个随机数。

答案 4 :(得分:0)

我认为,你的情况是要求进行状态管理,看我是灵活开发人员,所以我每天都会在每次点击时重置屏幕(屏幕上的空间总是更少),

当你点击屏幕上的某个按钮(在swf中)时,你想要隐藏一些屏幕组件吗?那么你可以使它们可见= false并且还包括InLayout = false,这也会将它们从内存中删除,

<mx:states>
    <mx:State name="login">
    <mx:SetProperty target="{rpass}" name="visible" value="false" />        
    <mx:SetProperty target="{rpass}" name="includeInLayout" value="false" />
    </mx:State>
    <mx:State name="register">
        <mx:SetProperty target="{rpass}" name="visible" value="true"/>
        <mx:SetProperty target="{rpass}" name="includeInLayout" value="true"/>
    </mx:State>
</mx:states>

这里我有两个状态,登录和注册,所以当你点击注册按钮,然后你的rpass字段显示,反之亦然,所以你可以像这样制作屏幕..

flex3中的状态模型很简单,如果你在flex4中,那么它在那里更漂亮,

希望这会有所帮助

ANKUR