私は、ネット接続の呼び出しを一定の量だけずらしてサーバーに負担をかけることのないクラスを作成しようとしています。そのため、十数個のネットコネクタが動作していません私のコードの周りに。 コール・コマンドを送信できるクラスが必要な場合、クラスはキューにコールを追加し、キューに何かがある場合はそれを1秒ごとに表示します。これは私がこれまで持っていたものです。私はAS3/Flex 3スタジオリモート+キュー
Server.getInstance().call("Fetch.getData", parseAllData, onError)
public function parseAllData(event:Object):void {
trace("Victory!");
}
public function onError(event:Object):void {
trace("Error :" + event);
}
を呼び出すとき
package net
{
import flash.events.TimerEvent;
import flash.net.NetConnection;
import flash.net.Responder;
import flash.utils.Timer;
public class Server
{
private static var gateway:String = "http://localhost/gateway.php";
private static var queue:Vector.<ServerNode>
private static var nc:NetConnection;
private static var instance:Server = null;
private static var res:Responder;
private var timer:Timer;
public function Server(e:ServerEnforcer) {
nc = new NetConnection();
queue = new Vector.<ServerNode>();
timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER, execCall);
timer.start();
}
public static function getInstance():Server {
if (instance == null) {
instance = new Server(new ServerEnforcer);
}
return instance;
}
private function execCall(e:Event):void {
if (queue.length > 0) {
var node:ServerNode = queue.pop();
nc.call(node.method, node.res, node.args);
}
}
public function call(method:String, success:Function, failure:Function, ...args):void {
queue.unshift(new ServerNode(method, success, failure, args));
}
private function serverFailure(event:Object):void {
trace("Server Failure : " + event.description);
}
}
}
import flash.net.Responder;
class ServerEnforcer { }
class ServerNode {
public var method:String;
public var success:Function;
public var failure:Function;
public var args:Array;
public var res:Responder
public function ServerNode(_method:String, _success:Function, _failure:Function, _args:Array) {
method = _method;
success = _success;
failure = _failure;
res = new Responder(success, failure);
args = _args;
}
}
今、絶対に何も起こりません。なぜ、これがうまくいかないのか?
正確にはどうなりますか?例えば、デバッグモードでは、プログラムはサーバーに接続されますか?返されたデータは空であり、アプリケーションはまったく実行されますか?少なくともそれほど多くの情報を与えてください。 – Ryan