如何在 AS3 中使用 mx.rpc.Responder
How to working with mx.rpc.Responder in AS3
我正在尝试使用名为 assql 的库来为 mysql 的操作服务。在使用中,我看到她使用一种名为 AsyncResponder 的方法,该方法仅适用于 Flex 应用程序的 mx.rpc 包...我的问题是,我如何才能在常规 AS3 中使用此方法,或使用其他方法功能来解决我的问题?
package {
import com.maclema.mysql.Statement;
import com.maclema.mysql.Connection;
import com.maclema.mysql.ResultSet;
import mx.rpc.AsyncResponder;
import com.maclema.mysql.MySqlToken;
import com.maclema.util.ResultsUtil;
import flash.display.MovieClip;
import flash.events.Event;
public class CRUD extends MovieClip{
//The MySql Connection
private var con:Connection;
public function CRUD() {
onCreationComplete();
}
private function onCreationComplete():void {
con = new Connection("localhost", 3306, "root", "", "banricoop-game");
con.addEventListener(Event.CONNECT, handleConnected);
con.connect();
}
private function handleConnected(event:Event):void {
getAllUsers();
}
private function getAllUsers():void {
var st:Statement = con.createStatement();
var token:MySqlToken = st.executeQuery("SELECT * FROM users");
token.info = "GetAllUsers";
token.addResponder(new AsyncResponder(result, fault, token));
}
private function getEmployee(userID:int):void {
var st:Statement = con.createStatement();
st.sql = "SELECT * FROM users WHERE id = ?";
st.setNumber(1, userID);
var token:MySqlToken = st.executeQuery();
token.info = "GetUser";
token.userID = userID;
token.addResponder(new AsyncResponder(result, fault, token));
}
private function result(data:Object, token:Object):void {
var rs:ResultSet;
if ( token.info == "GetAllUsers" ) {
rs = ResultSet(data);
trace("Found " + rs.size() + " employees!");
} else if ( token.info == "GetUser" ) {
rs = ResultSet(data);
if ( rs.next() ) {
trace("Employee " + token.employeeID + " username is '" + rs.getString("username") + "'");
}
else {
trace("No such employee for id " + token.employeeID);
}
}
}
private function fault(info:Object, token:Object):void {
trace(token.info + " Error: " + info);
}
}
}
拥抱!
您需要下载 Flex SDK 并将这些库添加到您的项目中:
- /frameworks/libs/framework.swc
- /frameworks/libs/rpc.swc
因此,您将能够在仅限 AS3 的环境中使用。
我正在尝试使用名为 assql 的库来为 mysql 的操作服务。在使用中,我看到她使用一种名为 AsyncResponder 的方法,该方法仅适用于 Flex 应用程序的 mx.rpc 包...我的问题是,我如何才能在常规 AS3 中使用此方法,或使用其他方法功能来解决我的问题?
package {
import com.maclema.mysql.Statement;
import com.maclema.mysql.Connection;
import com.maclema.mysql.ResultSet;
import mx.rpc.AsyncResponder;
import com.maclema.mysql.MySqlToken;
import com.maclema.util.ResultsUtil;
import flash.display.MovieClip;
import flash.events.Event;
public class CRUD extends MovieClip{
//The MySql Connection
private var con:Connection;
public function CRUD() {
onCreationComplete();
}
private function onCreationComplete():void {
con = new Connection("localhost", 3306, "root", "", "banricoop-game");
con.addEventListener(Event.CONNECT, handleConnected);
con.connect();
}
private function handleConnected(event:Event):void {
getAllUsers();
}
private function getAllUsers():void {
var st:Statement = con.createStatement();
var token:MySqlToken = st.executeQuery("SELECT * FROM users");
token.info = "GetAllUsers";
token.addResponder(new AsyncResponder(result, fault, token));
}
private function getEmployee(userID:int):void {
var st:Statement = con.createStatement();
st.sql = "SELECT * FROM users WHERE id = ?";
st.setNumber(1, userID);
var token:MySqlToken = st.executeQuery();
token.info = "GetUser";
token.userID = userID;
token.addResponder(new AsyncResponder(result, fault, token));
}
private function result(data:Object, token:Object):void {
var rs:ResultSet;
if ( token.info == "GetAllUsers" ) {
rs = ResultSet(data);
trace("Found " + rs.size() + " employees!");
} else if ( token.info == "GetUser" ) {
rs = ResultSet(data);
if ( rs.next() ) {
trace("Employee " + token.employeeID + " username is '" + rs.getString("username") + "'");
}
else {
trace("No such employee for id " + token.employeeID);
}
}
}
private function fault(info:Object, token:Object):void {
trace(token.info + " Error: " + info);
}
}
}
拥抱!
您需要下载 Flex SDK 并将这些库添加到您的项目中:
- /frameworks/libs/framework.swc
- /frameworks/libs/rpc.swc
因此,您将能够在仅限 AS3 的环境中使用。