我使用FLEX已经有一段时间了,我有一些“state”声明。对于那些不确定我的意思的人来说,这就像是你可以翻译几个不同的页面,设置一个当前状态。
现在我想开始用Facebook开发,我不知道如何在我用html创建的页面之间传递。我猜使用javascript而不是php是可能的,但我不确定如何实现。有人能帮帮我吗?
我想做的一个计划是:
tigger1
State A-------------------->State B
trigger2
State B-------------------->State C下面的示例显示了一个具有两种状态的登录面板:default用于显示登录表单,Register用于显示用于注册的表单。当前状态更改由操作触发(在本例中,按Linkbutton)。主要是,状态所做的是根据用户在每个状态下应该能够做的事情来显示适当的内容。例如,如果我想做一个付款表单,在用户尝试付款后,如果付款成功,我将处于"Thank_you“状态,而如果付款失败,我将具有"Try_again”状态。如何使用php/js做到这一点呢?
login/register panel的代码示例(来自adobe flex网站,也可以在链接中找到运行示例和完整代码):
<!-- The Application class states property defines the view states.-->
<s:states>
<s:State name="default"/>
<s:State name="Register"/>
</s:states>
<!-- Set title of the Panel container based on the view state.-->
<s:Panel id="loginPanel"
title="Login" title.Register="Register">
<s:Form id="loginForm">
<s:FormItem label="Username:">
<s:TextInput/>
</s:FormItem>
<s:FormItem label="Password:">
<s:TextInput/>
</s:FormItem>
<s:FormItem id="confirm" label="Confirm:" includeIn="Register">
<!-- Add a TextInput control to the form ONLY for the Register view state. -->
<s:TextInput/>
</s:FormItem>
<s:FormItem>
<!-- Use the LinkButton to change view state.-->
<!-- Set label of the control based on the view state.-->
<mx:LinkButton id="registerLink"
label="Need to Register?"
label.Register="Return to Login"
click="currentState="Register"
click.Register="currentState="default"/>
<s:Button id="loginButton"
label="Login" label.Register="Register"/>
</s:FormItem>
</s:Form>
</s:Panel>提前感谢
发布于 2013-03-05 04:33:32
好的,我想我明白你的问题了。Flex (或Flash)使用正在进行的变量(或状态),因为它是一个长时间运行的程序,由用户界面中的事件控制。
Web编程不是这样的。每个页面都与仅在该请求期间存在的程序分开提供服务,因此必须通过使用cookie在客户端维护状态。由于服务器通常需要知道用户状态,因此浏览器会自动向服务器提供cookie (如果设置了cookie),服务器可以交叉引用cookie的值和该用户以前做过的事情。
如果Cookie值是唯一的,则可以使用它来交叉引用会话存储,会话存储是一组仅供一个用户使用的值。PHP在其$_SESSION特性中提供了这一点。这本身就是一个相当大的话题,所以我建议在网上搜索"PHP会话示例“-在这里和网上-并尝试一些代码。真实的例子将向您展示它是如何工作的。
编辑:原来状态(变量)和状态(UI变体)是不同的东西!有关更多详细信息,请参阅评论。
https://stackoverflow.com/questions/15210001
复制相似问题