amfphp安装使用
2008-10-21 10:12 http://amfphp.sourceforge.net/ 下载最新的版本 1 解压到:E:\sites\mysite\amfphp 2 修改E:\sites\mysite\amfphp\gateway.php //$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1"); $gateway->setCharsetHandler( "none", "ISO-8859-1", "ISO-8859-1" ); //修改by许雷,2008.10.21 3 services_config.xml <?xml version="1.0" encoding="utf-8" ?> <services-config> <services> <service id="amfphp-flashremoting-service" class="flex.messaging.services.RemotingService" messageTypes="flex.messaging.messages.RemotingMessage"> <destination id="amfphp"> <channels> <channel ref="my-amfphp" /> </channels> <properties> <source>*</source> </properties> </destination> </service> </services> <channels> <channel-definition id="my-amfphp" class="mx.messaging.channels.AMFChannel"> <endpoint uri="http://www.mysite.com/amfphp/gateway.php" class="flex.messaging.endpoints.AMFEndpoint" /> </channel-definition> </channels> </services-config> 4 E:\sites\mysite\amfphp\services\getUserService.php <?php class getUserService { function getUsers(){ mysql_connect('172.20.82.173','edu','edu'); mysql_select_db('edu5'); mysql_query('SET NAMES UTF8'); $sql = 'SELECT * FROM edu_user_all LIMIT 1'; $result = mysql_query($sql); $rows = mysql_fetch_array($result); return $rows; } } //$myobj = new getUserService(); //print_r($myobj->getUsers()); ?> 5 RemotingExample.mxml <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()"> <mx:Script> <![CDATA[ import mx.rpc.http.HTTPService; import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; import flash.events.Event; import mx.managers.CursorManager; internal function initApp():void { service.getOperation('getUsers').send(); } internal function resultHandler(evt:ResultEvent):void { CursorManager.removeBusyCursor(); myList.labelField = "username"; myList.dataProvider = evt.result; } ]]> </mx:Script> <mx:RemoteObject id="service" showBusyCursor="true" source="getUserService" destination="amfphp"> <mx:method name="getUsers" result="resultHandler(event)" /> </mx:RemoteObject> <mx:Panel styleName="myPanel" layout="absolute" title="名册" width="200" height="400"> <mx:List id="myList" width="100%" height="100%"></mx:List> </mx:Panel> </mx:Application> 7 编译: E:\sites\mysite\swf>mxmlc RemotingExample.mxml -locale en_US -services services_config.xml 8 如果要传递参数到服务器: [Bindable] public class Reservation { public var reservationId:int = 0; public var fullName:String = ""; public var address:String = ""; public var city:String = ""; public var state:String = ""; public var postalCode:String = ""; public var phone:String = ""; public var dateNeeded:String = ""; public var options:String = ""; public function Reservation() { } } var dataObj:Reservation = new Reservation(); dataObj.reservationId = 0; dataObj.fullName = fullname.text; dataObj.address = address.text; dataObj.city = city.text; dataObj.state = state.text; dataObj.postalCode = postalcode.text; dataObj.phone = phone.text; dataObj.dateNeeded = dateNeeded.text; dataObj.options = selectedOptions.toString(); <mx:RemoteObject id="hs" destination="ColdFusion" source=”reservations.ReservationService” fault="faultHandler(event)"> <mx:method name="doCreate" result="resultHandler(event)"/> </mx:RemoteObject> hs.doCreate(dataObj); ------------------------------向服务器传递参数实例-------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()"> <mx:Script> <![CDATA[ import mx.rpc.http.HTTPService; import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; import flash.events.Event; import mx.managers.CursorManager; internal function initApp():void { //service.getOperation('getUsers').send(); service.doCreate("test123"); } internal function resultHandler(evt:ResultEvent):void { CursorManager.removeBusyCursor(); myList.labelField = "username"; myList.dataProvider = evt.result; } ]]> </mx:Script> <mx:RemoteObject id="service" showBusyCursor="true" source="getUserService" destination="amfphp"> <mx:method name="getUsers" result="resultHandler(event)" /> <mx:method name="doCreate" result="resultHandler(event)" /> </mx:RemoteObject> <mx:Panel styleName="myPanel" layout="absolute" title="名册" width="200" height="400"> <mx:List id="myList" width="100%" height="100%"></mx:List> </mx:Panel> </mx:Application> php文件: <?php class getUserService { function getUsers(){ mysql_connect('172.20.82.173','edu','edu'); mysql_select_db('edu5'); mysql_query('SET NAMES UTF8'); $sql = 'SELECT * FROM edu_user_all'; $result = mysql_query($sql); $rows = mysql_fetch_array($result); return $rows; } function doCreate($str){ return array($str.'in php'); } } //$myobj = new getUserService(); //print_r($myobj->getUsers()); ?> ----------分析---------------- 这里:service.doCreate("test123");直接向服务器的doCreate方法传递了一个字符串 还可以传递对象。 |