include 'amf/amf-classes.as' import org.libspark.web.AMFGateway; class HelloService { public function say():String { return 'Hello, AMF!!'; } public function hello():Array { return ['Hello', 'AMF']; } public function obj():Object { return { hello: 'hello', amf: 'amf' }; } } class CalculatorService { public function add(a:int, b:int):int { return a + b; } public function sub(a:int, b:int):int { return a - b; } } class QueryService { public function getPeopleList(query:Object):Array { var result:Array = []; if (query.limit == undefined) { query.limit = 10; } for (var i:uint = 0; i < query.limit; ++i) { result.push(createPeople(query)); } return result; } private function createPeople(query:Object):Object { return { name: createName(query), age: createAge(query) }; } private static const A:uint = 'A'.charCodeAt(0); private static const Z:uint = 'Z'.charCodeAt(0); private function createName(query:Object):String { var len:uint = query.nameLen != undefined ? uint(query.nameLen) : 5; var result:String = ''; for (var i:uint = 0; i < len; ++i) { result += String.fromCharCode(Math.floor(Math.random() * (Z - A)) + A); } return result; } private function createAge(query:Object):uint { var minAge:uint = query.minAge != undefined ? uint(query.minAge) : 20; var maxAge:uint = query.maxAge != undefined ? uint(query.maxAge) : 30; return Math.floor(Math.random() * (maxAge - minAge)) + minAge; } } var gateway:AMFGateway = new AMFGateway(); gateway.addRemotingService('HelloService', HelloService); gateway.addRemotingService('CalculatorService', CalculatorService); gateway.addRemotingService('QueryService', QueryService); gateway.enter();