Flex+PHP

1、编辑Flex+GoogleMap中的t.mxml文件,添加如下信息(红色字体是相对于Flex+GoogleMap中的代码添加的):
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark"
        xmlns:mx="library://ns.adobe.com/flex/halo"
        xmlns:mx2="library://ns.adobe.com/flex/mx"
        xmlns:zgflex="org.zgflex.*">
<maps:Map xmlns:maps="com.google.maps.*" id="map" mapevent_mapready="onMapReady(event)" 
width="800" height="600" key="ABQIAAAAhmgrPsq0NSLkmZ286oqdZhRi_j0U6kJrkFvY4-OX2XYmEAa76BTBlTvdBgkLYeNAzGINuVlJ2uODpA"/>
<fx:Script>
<![CDATA[
 
import com.google.maps.LatLng;
import com.google.maps.Map;
import com.google.maps.MapEvent;
import com.google.maps.MapType;
import com.google.maps.*;/*import Google Map 的各类 class*/ 
import com.google.maps.controls.* 
import com.google.maps.overlays.* 
import com.google.maps.styles.* 
import com.google.maps.MapMoveEvent; 
import com.google.maps.MapMouseEvent; 
 
   import mx.controls.Alert;
import mx.core.UIComponent;
import mx.events.FlexEvent;
import mx.managers.CursorManager;
import mx.events.ValidationResultEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.validators.Validator;
import org.zgflex.*
import mx.utils.ArrayUtil;
   import mx.collections.ArrayCollection;
 
   [Bindable]
   private var dp:ArrayCollection;
 
private function onMapReady(event:Event):void {
map.setCenter(new LatLng(32.81163844500426,104.7087573122981), 4, MapType.NORMAL_MAP_TYPE);/* 设置地图初始中心位置 */ 
map.addControl( new PositionControl( new PositionControlOptions() ));/* 加入地图各类控件 */ 
map.addControl( new OverviewMapControl( new OverviewMapControlOptions() ) ); 
map.addControl( new ZoomControl( new ZoomControlOptions() ) ); 
map.addControl( new MapTypeControl( new MapTypeControlOptions() ) ); 
map.enableScrollWheelZoom(); 
map.enableContinuousZoom(); 
 
var citylist:Array=new Array();
var citymark:Array=new Array();
citylist.push({bw:31.155159751061156,dj:121.42727136611938});//上海南站
citylist.push({bw:31.18415020685393,dj:121.50220692157745});//上海东站
citylist.push({bw:23.116678,dj:113.206822});//广州窖口
citylist.push({bw:23.0813,dj:113.234164});//广州芳村
citylist.push({bw:32.08904667077573,dj:118.78370761871338});//南京中央门
citylist.push({bw:22.725998,dj:114.272069});//深圳龙岗
 
for(var i:int=0;i<citylist.length;i++)
{
 var marker:Marker=new Marker(new LatLng(citylist[i].bw,citylist[i].dj),
                             new MarkerOptions({
                                  fillStyle: new FillStyle({color: 0xFF3366, alpha: 0.8}),
                                  radius: 12,
                                  hasShadow: true
                             }));
     citymark.push(marker);
 map.addOverlay(marker);
}
 
citymark[0].addEventListener(MapMouseEvent.CLICK,function(event:MapMouseEvent):void{
                               ShNZ.visible=true;
                        ShDZ.visible=false;
                    GzJK.visible=false;
                    GzFC.visible=false;
                        NjZYM.visible=false;
                        SzLG.visible=false;
                        service.getResults.send(); //调用php webservice 服务
    });
 
citymark[0].addEventListener(MapMouseEvent.CLICK,function(event:MapMouseEvent):void{
                                        ShNZ.visible=true;
                                        ShDZ.visible=false;
                                        GzJK.visible=false;
                                        GzFC.visible=false;
                                        NjZYM.visible=false;
                                        SzLG.visible=false;
});
 
citymark[1].addEventListener(MapMouseEvent.CLICK,function(event:MapMouseEvent):void{
                                        ShNZ.visible=false;
                                        ShDZ.visible=true;
                                        GzJK.visible=false;
                                        GzFC.visible=false;
                                        NjZYM.visible=false;
                                        SzLG.visible=false;
});
 
citymark[2].addEventListener(MapMouseEvent.CLICK,function(event:MapMouseEvent):void{
                                        ShNZ.visible=false;
                                        ShDZ.visible=false;
                                        GzJK.visible=true;
                                        GzFC.visible=false;
                                        NjZYM.visible=false;
                                        SzLG.visible=false;
});
 
citymark[3].addEventListener(MapMouseEvent.CLICK,function(event:MapMouseEvent):void{
                                        ShNZ.visible=false;
                                        ShDZ.visible=false;
                                        GzJK.visible=false;
                                        GzFC.visible=true;
                                        NjZYM.visible=false;
                                        SzLG.visible=false;
});
 
citymark[4].addEventListener(MapMouseEvent.CLICK,function(event:MapMouseEvent):void{
                                        ShNZ.visible=false;
                                        ShDZ.visible=false;
                                        GzJK.visible=false;
                                        GzFC.visible=false;
                                        NjZYM.visible=true;
                                        SzLG.visible=false;
});
 
citymark[5].addEventListener(MapMouseEvent.CLICK,function(event:MapMouseEvent):void{
                                        ShNZ.visible=false;
                                        ShDZ.visible=false;
                                        GzJK.visible=false;
                                        GzFC.visible=false;
                                        NjZYM.visible=false;
                                        SzLG.visible=true;
});
 
}
 
private function faultHandler(fault:FaultEvent):void //连接php webservice服务出错时会调用
{
//CursorManager.removeBusyCursor();
    var errStr:String= "code:\n" + fault.fault.faultCode + "\n\nMessage:\n"+ fault.fault.faultString + "\n\nDetail:\n" + fault.fault.faultDetail;
    Alert.show("Error:"+errStr);
}
 
private function getResultsHandler(e:ResultEvent):void //获得从php webservice服务得到的数据
{
    dp= new ArrayCollection(ArrayUtil.toArray(e.result)); 
    //Alert.show((dp.source)[0].cust_id.toString());
//this.selectedTeam.cust_id=(dp.source)[0].cust_id;
   }
 
private function noVisible(e:Event):void
{
    ShNZ.visible=false;
    ShDZ.visible=false;
    GzJK.visible=false;
    GzFC.visible=false;
    NjZYM.visible=false;
    SzLG.visible=false;
}
 
]]>
</fx:Script>
<fx:Declarations> <!--连接php webservice服务-->
    <s:RemoteObject id="service" source="GetData" destination="amfphp"
             fault="faultHandler(event)" showBusyCursor="true">
        <s:method name="getResults" result="getResultsHandler(event)" fault="faultHandler(event)" />
    </s:RemoteObject>
</fx:Declarations>
    <mx2:DataGrid x="79" y="4" width="400" id="ShNZ" visible="false" dataProvider="{dp}" click="noVisible(event)">
        <mx2:columns>
            <mx2:DataGridColumn headerText="上海南站" dataField="today_time"/>
            <mx2:DataGridColumn headerText="客户ID" dataField="cust_id"/>
            <mx2:DataGridColumn headerText="版本号" dataField="version_id"/>
            <mx2:DataGridColumn headerText="成功次数" dataField="success_num"/>
            <mx2:DataGridColumn headerText="失败次数" dataField="fail_num"/>
            <mx2:DataGridColumn headerText="备注" dataField="remark"/>
        </mx2:columns>
    </mx2:DataGrid>
 
    <mx2:DataGrid x="79" y="4" width="400" id="ShDZ" visible="false" dataProvider="" click="noVisible(event)">
        <mx2:columns>
            <mx2:DataGridColumn headerText="上海东站" dataField=""/>
            <mx2:DataGridColumn headerText="客户ID" dataField=""/>
            <mx2:DataGridColumn headerText="版本号" dataField=""/>
            <mx2:DataGridColumn headerText="成功次数" dataField=""/>
            <mx2:DataGridColumn headerText="失败次数" dataField=""/>
            <mx2:DataGridColumn headerText="备注" dataField=""/>
        </mx2:columns>
    </mx2:DataGrid>
 
    <mx2:DataGrid x="79" y="4" width="400" id="GzJK" visible="false" dataProvider="" click="noVisible(event)">
        <mx2:columns>
            <mx2:DataGridColumn headerText="广州窖口" dataField=""/>
            <mx2:DataGridColumn headerText="客户ID" dataField=""/>
            <mx2:DataGridColumn headerText="版本号" dataField=""/>
            <mx2:DataGridColumn headerText="成功次数" dataField=""/>
            <mx2:DataGridColumn headerText="失败次数" dataField=""/>
            <mx2:DataGridColumn headerText="备注" dataField=""/>
        </mx2:columns>
    </mx2:DataGrid>
 
    <mx2:DataGrid x="79" y="4" width="400" id="GzFC" visible="false" dataProvider="" click="noVisible(event)">
        <mx2:columns>
            <mx2:DataGridColumn headerText="广州芳村" dataField=""/>
            <mx2:DataGridColumn headerText="客户ID" dataField=""/>
            <mx2:DataGridColumn headerText="版本号" dataField=""/>
            <mx2:DataGridColumn headerText="成功次数" dataField=""/>
            <mx2:DataGridColumn headerText="失败次数" dataField=""/>
            <mx2:DataGridColumn headerText="备注" dataField=""/>
        </mx2:columns>
    </mx2:DataGrid>
 
    <mx2:DataGrid x="79" y="4" width="400" id="NjZYM" visible="false" dataProvider="" click="noVisible(event)">
        <mx2:columns>
            <mx2:DataGridColumn headerText="南京中央门" dataField=""/>
            <mx2:DataGridColumn headerText="客户ID" dataField=""/>
            <mx2:DataGridColumn headerText="版本号" dataField=""/>
            <mx2:DataGridColumn headerText="成功次数" dataField=""/>
            <mx2:DataGridColumn headerText="失败次数" dataField=""/>
            <mx2:DataGridColumn headerText="备注" dataField=""/>
        </mx2:columns>
    </mx2:DataGrid>
 
    <mx2:DataGrid x="79" y="4" width="400" id="SzLG" visible="false" dataProvider="" click="noVisible(event)">
        <mx2:columns>
            <mx2:DataGridColumn headerText="深圳龙岗" dataField=""/>
            <mx2:DataGridColumn headerText="客户ID" dataField=""/>
            <mx2:DataGridColumn headerText="版本号" dataField=""/>
            <mx2:DataGridColumn headerText="成功次数" dataField=""/>
            <mx2:DataGridColumn headerText="失败次数" dataField=""/>
            <mx2:DataGridColumn headerText="备注" dataField=""/>
        </mx2:columns>
    </mx2:DataGrid>
 
</s:Application>
 
2、在googleMap目录下新建org/zgflex目录,并在其下创建LogResult.as文件,内容如下:
package org.zgflex
{
[RemoteClass(alias="org.zgflex.LogResult")] //alias别名表明在webservices端也有一个LogResult类和其对应,当连接时,通过对应的对象传递数据
[Bindable]
public class LogResult
 
{
   public var cust_id:String;
   public var today_time:String;
   public var version_id:String;
   public var success_num:String;
   public var fail_num:String;
   public var remark:String;
}
}
 
3、在googleMap新建文件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"> <!--amfphp对应步骤一中Declarations块内的destination-->
                <channels>
                    <channel ref="localhost-amfphp"/>
                </channels>
                <properties>
                    <source>*</source>
                </properties>
            </destination>
        </service>
    </services>
    <channels>
        <channel-definition id="localhost-amfphp" class="mx.messaging.channels.AMFChannel">
            <endpoint uri="http://localhost/amfphp1.9/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/>
        </channel-definition><!--uri指定php webservice的gateway-->
    </channels>
</services-config>
 
4、在Apache2工作目录编写crossdomain.xml(默认情况下为/var/www/目录),以解决Flash跨域访问问题,内容如下:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>
 
4、编译t.mxml:
mxmlc t.mxml -library-path+=map_flex_1_20.swc -locale zh_CN -services services-config.xml
 
5、将t.swf放入浏览器中,点击南站图标,应显示如下信息:
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值