连接数据库1:
import DataService.DsQiLogin;
private var objDsQiLogin:DsQiLogin;
import com.iir.qi.query.*;
private function Init():void{
cfg.addEventListener("ConfigResult",configResult);
cfg.getConfig();
objAreaFlag.flag = false;
}
private function configResult(event:Event):void{
qiAddress=cfg.QiAddress;
qiService=cfg.QiService;
qiProcess=cfg.QiProcess;
qiPort=cfg.QiPort;
init();
//preInit();
}
private function init():void{
objDsQiLogin = new DsQiLogin("msoerries", "catfish", "inFlowTestingApp",loginResult,loginException);
}
private function loginResult(event:Event):void{
this.qiSession = objDsQiLogin.qiSession;
}
private function loginException(event:Event):void{
Alert.show("Error About Connection~!");
}
连数据库2:
private function preInit():void{
cfg.addEventListener("ConfigResult",configResult);
cfg.getConfig();
}
private function configResult(event:Event):void{
qiAddress=cfg.QiAddress;
qiService=cfg.QiService;
qiProcess=cfg.QiProcess;
qiPort=cfg.QiPort;
init();
}
private function init():void{
qiLogin.setService(qiService);
qiLogin.setProcess(qiProcess);
qiLogin.login("msoerries", "catfish", "inFlowTestingApp");
}
private function qiLoginResponse():void{
qiSession = qiLogin.getResponse().toString();
}
private function qiLoginException():void{
Alert.show(qiLogin.getResponse().toString());
}
<qi:QiAgent id="qiLogin" qiAgentAddress="{qiAddress}" qiAgentPort="{qiPort}" qiResponse="qiLoginResponse()" qiException="qiLoginException()"/>
config:
package
{
import mx.rpc.http.HTTPService;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import mx.collections.ArrayCollection;
import mx.rpc.events.FaultEvent;
import flash.events.Event
import flash.events.EventDispatcher;
import com.iir.qi.QiAgent;
[Event(name="ConfigResult", type="flash.events.Events")]
[Bindable]
public class qiConfig extends EventDispatcher
{
private static var _instance:qiConfig;
private var configRequest:HTTPService = new HTTPService();
private var _qiAddress:String;
private var _qiService:String;
private var _qiPort:String;
private var _qiProcess:String
private var configData:ArrayCollection = new ArrayCollection();
public function qiConfig(enforcer:SingletonEnforcer) {}
public static function getInstance():qiConfig
{
if(qiConfig._instance == null)
{
qiConfig._instance = new qiConfig(new SingletonEnforcer);
}
return qiConfig._instance;
}
public function get QiAddress():String { return _qiAddress; }
public function set QiAddress(value:String):void { _qiAddress = value; }
public function get QiService():String { return _qiService; }
public function set QiService(value:String):void {_qiService = value; }
public function get QiPort():String { return _qiPort; }
public function set QiPort(value:String):void { _qiPort = value; }
public function get QiProcess():String { return _qiProcess; }
public function set QiProcess(value:String):void {_qiProcess = value; }
public function getConfig():void
{
configRequest.url = "Config/Config.xml";
configRequest.addEventListener(ResultEvent.RESULT, configResult);
configRequest.addEventListener(FaultEvent.FAULT, configFault);
configRequest.send();
}
private function configResult(event:ResultEvent):void
{
//Alert.show("got result");
configData = configRequest.lastResult.config.qiConfig;
//Alert.show(configData.getItemAt(0).qiAddress);
QiAddress = configData.getItemAt(0).qiAddress;
QiService = configData.getItemAt(0).qiService;
QiPort = configData.getItemAt(0).qiPort;
QiProcess = configData.getItemAt(0).qiProcess;
//var dspEvnt:EventDispatcher = new EventDispatcher();
//dspEvnt.dispatchEvent(new Event("ConfigResult"));
dispatchEvent(new Event("ConfigResult"));
//Alert.show("Dispatched Event");
}
private function configFault(event:FaultEvent):void
{
Alert.show("Error Retrieving Configuration file");
}
public function QiAgentFactory():QiAgent
{
var agent:QiAgent = new QiAgent();
agent.setAgentAddress(_qiAddress);
agent.setProcess(_qiProcess);
agent.setAgentPort(_qiPort);
agent.setService(_qiService);
return agent;
}
}
]
cofig _xml:
datalogin:
package DataService
{
import flash.events.EventDispatcher;
import com.iir.qi.QiAgent;
import com.iir.qi.QiEvent;
import mx.controls.Alert;
import flash.events.Event;
[Event(name="LoginResult", type="flash.events.Events")]
[Event(name="LoginException", type="flash.events.Events")]
public class DsQiLogin extends EventDispatcher
{
public var qiLogin:QiAgent;
public var qiSession:String;
public function DsQiLogin(userName:String, passWord:String, appHandle:String, loginListener:Function, exceptionListener:Function):void
{
qiLogin = qiConfig.getInstance().QiAgentFactory();
qiLogin.addEventListener("qiResponse", qiLoginResult);
qiLogin.addEventListener("qiException", qiLoginException);
if (loginListener != null)
{
addEventListener("LoginResult", loginListener);
}
if (exceptionListener != null)
{
addEventListener("LoginException", exceptionListener);
}
qiLogin.login(userName, passWord, appHandle);
}
private function qiLoginResult(event:QiEvent):void
{
qiSession = qiLogin.getResponse().toString();
dispatchEvent(new Event("LoginResult"));
}
private function qiLoginException(event:QiEvent):void
{
Alert.show(event.getResponse().toString());
dispatchEvent(new Event("LoginExeption"));
}
}
}