设为首页 收藏本站
查看: 785|回复: 0

[经验分享] flex整合php的小示例

[复制链接]

尚未签到

发表于 2017-3-31 10:40:10 | 显示全部楼层 |阅读模式
flex整合php实现一个简单的名片浏览

1.直接去官网http://amfphp.sourceforge.net下载一个amfphp.zip,并将其直接加压至php文件部署目录下,例如:http://localhost/amfphp

2.将数据库中的用户列表通过Remoting的方式发送给Flex,可新建文件getUserService.php,并将其保存在amfphp目录下的services文件夹中,代码如下:
<?
  class getUserService{
  function getUsers(){
  mysql_connect("localhost","root","123");
  mysql_select_db("test");
  mysql_query("SET NAMES UTF8");
  $sql = "select * from userinfo";
  return mysql_query($sql);
  }
  }
?>

3.修改amfphp目录下的gateway.php文件,设置数据传输时的编码格式。
找到该文件的127行,如下所示:
$gateway->setCharsetHandler("utf-8decode", "ISO-8859-1", "ISO-8859-1");
默认采用的编码是针对法语和德语等语言,需将其修改为支持中文、英文的编码,如下:
$gateway->setCharsetHandler("none", "ISO-8859-1", "ISO-8859-1");

经过以上步骤,服务器端的工作就完成了,接下来修改客户端的代码,在编写Flex代码前,先创建一个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://localhost:/amfphp/gateway.php" class="flex.messaging.endpoints.AMFEndPoint"/>
   </channel-definition>
</channels>
</services-config>

4.services_config.xml文件描述了远程服务的配置信息,供Flex识别服务器信息。修改好后把该文件放在程序flex_php的目录下,然后修改程序的属性,添加编译参数,在-local en_US后面加上配置文件地址,如下:
-local en_US -services services_config.xml
至此,完成了Remoting的所有相关的配置,下面是程序flex_php代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()" fontSize="12">
  <mx:Script>
  <![CDATA[
  import mx.rpc.events.FaultEvent;
  import mx.rpc.events.ResultEvent;
  import mx.managers.CursorManager;
      //初始化程序,调用远程方法
  private function initApp():void{
      service.getOperation('getUsers').send();
  }
  //得到结果,传给List控件
  private function resultHandler(evt:ResultEvent):void{
  CursorManager.removeBusyCursor();
  myList.labelField = "name";
  myList.dataProvider = evt.result;
  }
  //服务器错误信息
  private function faultHandler(evt:FaultEvent):void{
  trace("fault:"+evt.fault);
  }
  //点击用户,切换信息
  private function selectHandler(evt:Event):void{
         var user:Object = myList.selectedItem;
         userPanel.title = "详细信息"+user.name;
         user_txt.text = user.name;
         email_txt.text = user.email;
         url_txt.text = user.url;
  }
  ]]>
  </mx:Script>
    <!-- 定义RemoteObject对象 -->
    <mx:RemoteObject id="service" fault="faultHandler(event)" showBusyCursor="true" source="getUserService"
     destination="amfphp">
     <!-- 定义远程方法 -->
    <mx:method name="getUsers" result="resultHandler(event)"/>
    </mx:RemoteObject>
<mx:Panel id="userPanel" x="256" y="104" width="307" height="289" layout="absolute" title="详细信息"
horizontalAlign="center" verticalAlign="middle">
<mx:Label id="user_txt" x="10" y="23" fontWeight="bold"/>
<mx:Label id="email_txt" x="10" y="90"/>
<mx:Label id="url_txt" x="10" y="165"/>
</mx:Panel>
<mx:Panel x="77" y="104" width="171" height="386" layout="absolute" title="名册">
<mx:List id="myList" x="10" y="10" width="131" height="326" change="selectHandler(event)"></mx:List>
</mx:Panel>

</mx:Application>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-358049-1-1.html 上篇帖子: PHP webshell检查工具 python版 下篇帖子: php 向数据库表中插入数据
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表