4,328
社区成员
发帖
与我相关
我的任务
分享
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="960"
height="800" creationComplete="creationCompleteHandle()" currentState=""
pageTitle="你的标题" >
<mx:states>
<mx:State name="mail">
<mx:SetProperty target="{label1}" name="text" value="邮 件:"/>
<mx:SetProperty target="{membername}" name="width" value="50%"/>
<mx:AddChild relativeTo="{griditem1}" position="lastChild">
<mx:Label text="@mail.com"/>
</mx:AddChild>
</mx:State>
</mx:states>
<mx:transitions>
<!-- 定义过渡动画,从默认的状态过渡到”detail”-->
<mx:Transition fromState="" toState="mail">
<mx:Parallel target = "{canvas1}" duration="2000">
<mx:WipeLeft />
<mx:Blur blurXFrom="10" blurXTo="0" />
</mx:Parallel>
</mx:Transition>
</mx:transitions>
<mx:Canvas y="0" width="100%" height="100%" id="canvas1" >
<mx:Grid width="100%" height="100%">
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<mx:Label text="用户名:" id="label1"/>
</mx:GridItem>
<mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle" id="griditem1">
<mx:TextInput id="membername" width="100%"/>
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<mx:Label text="密 码:" id="label2"/>
</mx:GridItem>
<mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<mx:TextInput id="memberpswd" displayAsPassword="true" width="100%"/>
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
</mx:GridItem>
<mx:GridItem width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<mx:Button label="登陆" width="64" height="22" id="btnLog" click="OnLogin()"/>
<mx:Button label="退出" width="64" height="22" id="button1" click="OnLogout()" y="225" x="379"/>
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
<mx:GridItem width="100%" height="100%">
</mx:GridItem>
</mx:GridRow>
</mx:Grid>
</mx:Canvas>
<mx:HTTPService id="httpLogin" method="POST" showBusyCursor="true" result="resultHandle()">
</mx:HTTPService>
<mx:Script>
<![CDATA[
import mx.formatters.DateFormatter;
//以下三个类可根据你的具体情况进行自定义
import com.flashdev.file.LoginCheck;
import com.flashdev.classes.User;
import com.flashdev.classes.RemoteURL;
import flash.net.SharedObject;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.system.Security;
import mx.managers.FocusManager;
import mx.managers.PopUpManager;
import mx.formatters.Formatter;
import mx.controls.Alert;
private var strAppPath:String = RemoteURL.AppPath;
private var strMain:String = "mainform.html";
private var cUser:User;
private var UserID:String = "";
private var UserName:String = "";
public var opener:Object;
private var strCookieName:String = "cookiename";//本地cookie的名称
private function OnLoginWithEmail():void
{
var local:Date=new Date();
this.httpLogin.request.userid = this.UserID;
this.httpLogin.request.membername = this.UserName;
this.httpLogin.request.memberemail = this.membername.text;
this.httpLogin.request.memberpswd = this.memberpswd.text;
this.httpLogin.url = RemoteURL.loginURL + "email&" + local.getMilliseconds();
this.httpLogin.send();
return ;
}
public function creationCompleteHandle():void
{
var cookieDay:String = LoginCheck.getDate();
var user:User = LoginCheck.getCookie(this.strCookieName);
if(cookieDay == LoginCheck.getCookieDay())
{//是当天登陆的,直接进入到提交页面
gotoMain();
}else
{//不是当天登陆的,清楚Cookie重新登陆
this.membername.text = user.getName();
LoginCheck.clearCookie(this.strCookieName);
}
return ;
}
public function OnLogout():void
{
//this.gotoMain();
if(false == LoginCheck.clearCookie(this.strCookieName))
Alert.show("Clear Error!");
navigateToURL(new URLRequest('javascript:window.opener=null;window.close()'),'_self');
return ;
}
public function OnLogin():void
{
var local:Date=new Date();
UserName = this.membername.text;
this.httpLogin.request.membername = this.membername.text;
this.httpLogin.request.memberpswd = this.memberpswd.text;
this.httpLogin.url = RemoteURL.loginURL + "name&" + local.getMilliseconds();
//Alert.show(this.httpLogin.url);//测试
this.httpLogin.send();
return ;
}
public function resultHandle():void
{
var strStatus:String = this.httpLogin.lastResult.result.status;
if(strStatus == "0")
{
var strIsFirst:String = this.httpLogin.lastResult.result.isfirst;
if(strIsFirst == "true")
{//第一次登陆,尝试用邮件登陆
UserID = this.httpLogin.lastResult.result.user.id;
this.currentState = "mail";
this.membername.text = "";
}else
{
Alert.show("登陆失败,请重试!");
}
}else
{//登陆成功
//创建用户
UserID = this.httpLogin.lastResult.result.user.id;
cUser = new User(this.httpLogin.lastResult.result.user.name,
this.httpLogin.lastResult.result.user.groupid,
this.httpLogin.lastResult.result.user.title,
this.httpLogin.lastResult.result.user.email);
//Alert.show(cUser.toString());
//记录本地Cookie
LoginCheck.setCookie(this.strCookieName, cUser, LoginCheck.getDate());
gotoMain();
}
return ;
}
internal function gotoMain():void
{
var url:URLRequest = new URLRequest(this.strMain);
//Alert.show(this.strMain);
navigateToURL(url, "_self");
//Alert.show("navigateToURL");
return ;
}
]]>
</mx:Script>
<mx:Style source="css/my.css"/>
</mx:Application>
//提供那些方法供客户端调用
String[] methodNames = {"addNote","getNotes","getNoteDetail"};
//实例化一个服务端
PHPRPC_Server server = new PHPRPC_Server();
//添加要提供出去的类实例
server.add(methodNames,new NoteBookPhprpcClient());
//启动服务
server.start(request,response);
public class NoteControl
{
private var _service:PHPRPC_Client;
private var _theModel:ModelLocator = ModelLocator.getInstance();
private var pageModel:PageModel = PageModel.getInstance();
private var serverUrl:String = "http://localhost:8080/notebook/index.jsp";
private var methods:Array = new Array("addNote","getNotes","getNoteDetail");
public function NoteControl()
{
//初始化服务
_service = new PHPRPC_Client(serverUrl,methods);
//错误处理
_service.addEventListener(FaultEvent.FAULT,faultHandler);
}
//错误处理函数
internal function faultHandler(evt:FaultEvent):void{
Alert.show(evt.fault.message,"error");
}
//添加留言
public function addNote(note:Object):void{
_service.addNote(note,function(result:*, args:Array, output:String, warning:PHPRPC_Error):void{
if(result != null){
_theModel.dispatchEvent(new NoteEvent(NoteEvent.addNoteResult));
}else{
_theModel.dispatchEvent(new NoteEvent(NoteEvent.addNoteFail));
}
});
}
//获取留言
public function getNotes(curPage:int,pageCount:int):void{
_service.getNotes(curPage,pageCount,function(result:*, args:Array, output:String, warning:PHPRPC_Error):void{
var array:Array = result;
if(array!= null && array.length != 0){
var dataArray:ArrayCollection = new ArrayCollection(array.slice(2,array.length));
PageModel.pageCount = int(array[0]);
PageModel.size = int(array[1]);
ModelLocator.notes.removeAll();
for(var i:* in dataArray){
var note:NoteVO = new NoteVO();
note.fill(dataArray[i]);
ModelLocator.notes.addItem(note);
}
}
});
}
//获取留言详细信息
public function getDetails(noteId:int):void{
_service.getNoteDetail(noteId,function(result:*,args:Array,output:String,warning:PHPRPC_Error){
ModelLocator.selectNote.fill(result);
});
}
}
}
项目所需jar包从http://www.phprpc.org/zh_CN/下载