今天给网游加上用户登录和注册的数据库验证机制
AS编译的swf是不允许直接访问或修改硬盘文件的(共享对象和上传下载功能例外,编译成AIR RUNTIME可以彻底解决此问题) 因此必须借用外部方法比如js,asp,php,asp.net等。
AS验证数据类: 使用类似amfphp的方式,建立一个控制类Command.php 然后由Command.php判断该调用哪些类(Login.php 或 Register.php)来解析数据
[cc lang=”actionscript3″ nowrap=”false”]
package com.client
{
import com.Config;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
public class DataBaseCheck extends EventDispatcher
{
public static const SUCCESS=”success”;
public static const FAILURE=”failure”;
private var _userName;
private var _passWord;
private var _login:Boolean;
private var myLoader:URLLoader;
private var myXML:XML;
public function DataBaseCheck(userName:String,passWord:String,Login:Boolean=true)
{
_userName=userName;
_passWord=passWord;
_login=Login;
init();
}
private function init()
{
myLoader=new URLLoader();
myLoader.dataFormat=URLLoaderDataFormat.VARIABLES;
myLoader.load(new URLRequest(Config.WWWROOT+”Command.php?userName=”+_userName+”&passWord=”+_passWord+”&isLogin=”+_login));
myLoader.addEventListener(Event.COMPLETE,onCom);
myLoader.addEventListener(IOErrorEvent.IO_ERROR,onError);
}
private function onError(e:IOErrorEvent)
{
this.dispatchEvent(new Event(FAILURE));
}
private function onCom(e:Event)
{
var data:String=e.target.data[“result”];
myLoader.removeEventListener(Event.COMPLETE,onCom);
myLoader.removeEventListener(IOErrorEvent.IO_ERROR,onError);
myLoader=null;
if(data==”true”)
{
this.dispatchEvent(new Event(SUCCESS));
}else{
this.dispatchEvent(new Event(FAILURE));
}
}
}
}
[/cc]
PHP命令中心
Command.php
[cc lang=”php” nowrap=”false”]
check();
?>
[/cc]
Continue reading