package com.almerblank.utils{ import flash.net.Responder; import flash.system.Security; public class ServiceUtility{ private static var _instance:ServiceUtility; //remoting variables public var gatewayURL:String; public var gateway:RemotingConnection; public var response:Responder; public function ServiceUtility(enforcer:SingletonEnforcer){} public static function getInstance():ServiceUtility{ if(ServiceUtility._instance == null){ ServiceUtility._instance = new ServiceUtility(new SingletonEnforcer); } return ServiceUtility._instance; } //set your gateway URL public function init(url:String,security:Boolean,policy:String):void{ if(security){ flash.system.Security.loadPolicyFile(policy); } gatewayURL = url; } //call your AMFPHP service public function call(service:String, resultHandler:Function, faultHandler:Function,... params):void{ response = new Responder(resultHandler, faultHandler); gateway = new RemotingConnection(gatewayURL); gateway.call(service, response, params); } } } /** * Helper class for remoting */ import flash.net.NetConnection; import flash.net.ObjectEncoding; class RemotingConnection extends NetConnection{ public function RemotingConnection(sURL:String){ objectEncoding = ObjectEncoding.AMF0; if(sURL){ connect(sURL); } } public function AppendToGatewayUrl(s:String):void{ // } } class SingletonEnforcer{}