Actionscript 3 Actionscript移动组件Mapquest

Actionscript 3 Actionscript移动组件Mapquest,actionscript-3,mapquest,Actionscript 3,Mapquest,我正在尝试添加map in action script mobile app我已经为布局创建了xml,因为xml布局的标记是预定义的,所以我相信我们无法创建自定义标记,所以我使用图像标记添加了该地图,但现在的问题是mad组件也禁用了其滚动,我并不后悔,因为我已经在图像下创建了地图,我也尝试将滚动条垂直放置,但没有成功,因为地图在图像标签下 下面是我的代码 package { import com.danielfreeman.madcomponents.*; import com.

我正在尝试添加map in action script mobile app我已经为布局创建了xml,因为xml布局的标记是预定义的,所以我相信我们无法创建自定义标记,所以我使用图像标记添加了该地图,但现在的问题是mad组件也禁用了其滚动,我并不后悔,因为我已经在图像下创建了地图,我也尝试将滚动条垂直放置,但没有成功,因为地图在图像标签下

下面是我的代码

package
{
    import com.danielfreeman.madcomponents.*;
    import com.mapquest.*;
    import com.mapquest.services.geocode.*;
    import com.mapquest.tilemap.*;
    import com.mapquest.tilemap.controls.inputdevice.*;
    import com.mapquest.tilemap.controls.shadymeadow.*;
    import com.mapquest.tilemap.pois.*;

    import flash.display.Screen;
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.Event;
    import flash.geom.Point;
    import flash.geom.Rectangle;
    import flash.media.StageWebView;
    import flash.system.Capabilities;
    import flash.text.TextField;
    import flash.utils.flash_proxy;

    import mx.events.FlexEvent;



    public class map extends Sprite
    {   

        private static var alResults:Array;
    static  var   myMap:TileMap = new TileMap("my Key");
    static  var geocoder:Geocoder;


        public static const LAYOUT:XML = <scrollVertical background="#DADED4" >

                                    <imageLoader   id="placeholder"> </imageLoader  >

                </scrollVertical>;

        protected static var _message:UILabel;

        public static function initialize():void{


            var placeholder:UIImageLoader = UIImageLoader(UI.findViewById("placeholder"));
            placeholder.scrollRect
            placeholder.addChild(myMap);
            myMap.addControl(new SMLargeZoomControl());
            myMap.addControl(new SMViewControl());
            myMap.addControl(new MouseWheelZoomControl());

            myMap.size = new Size(300, 400);
            myMap.addControl(new SMLargeZoomControl());
            myMap.addControl(new SMViewControl());
            myMap.addControl(new MouseWheelZoomControl());

            // create a new TileMap object, passing your platform key
            geocoder = new Geocoder(myMap);

            geocoder.addEventListener(GeocoderEvent.GEOCODE_RESPONSE, onGeocodeResponse);
            geocoder.addEventListener(GeocoderEvent.GEOCODE_ERROR_EVENT, onGeocodeError);
            geocoder.addEventListener(GeocoderEvent.HTTP_ERROR_EVENT, onHttpError);
            doGeocode();
        }


        public function map()
        {
            super();

        }

        private static function onGeocodeResponse(e:GeocoderEvent):void {

            alResults = new Array();
            for each (var loc:GeocoderLocation in e.geocoderResponse.locations) {
                var o:Object = new Object();

                o.LatLng = loc.displayLatLng.lat + ", " + loc.displayLatLng.lng;
                o.GeocodeQuality = loc.geocodeQuality;
                o.GeocodeQualityCode = loc.geocodeQualityCode;

                alResults.push(o);
            }

            //this.dgResults.dataProvider = this.alResults;
            //this.vgrpResults.visible = true;
        }


        private static function doGeocode():void {    
            //remove all shapes form the map
            myMap.removeShapes();

            //use the default cursor
            //this.cursorManager.setBusyCursor();

            //make an array to hold the addresses
            var arrAddresses:Array = new Array();

            //push the addresses onto the array

            arrAddresses.push("placea");
            arrAddresses.push("place b");

            //call the geocoder object's geocode method, passing the array of addresses
            geocoder.geocode(arrAddresses);
        }

        private static function onGeocodeError(e:GeocoderEvent):void {
            //this.cursorManager.removeBusyCursor();
            makeErrorList("GEOCODER ERROR");
        }


        /*
        function to handle an error in the result
        */
        private static function onHttpError(e:GeocoderEvent):void {
            //this.cursorManager.removeBusyCursor();
            makeErrorList("HTTP ERROR");
        }



        /*
        function to make an array list to hold an error
        */
        private static function makeErrorList(s:String):void {
            var o:Object = new Object();
            o.LatLng = s;
            alResults.push(o);

            //this.dgResults.dataProvider = this.alResults;
            //this.vgrpResults.visible = true;
        }




    }
} 
包
{
导入com.danielfreeman.madcomponents.*;
导入com.mapquest.*;
导入com.mapquest.services.geocode.*;
导入com.mapquest.tilemap.*;
导入com.mapquest.tilemap.controls.inputdevice.*;
导入com.mapquest.tilemap.controls.shadymadow.*;
导入com.mapquest.tilemap.pois.*;
导入flash.display.Screen;
导入flash.display.Sprite;
导入flash.display.Stage;
导入flash.display.StageAlign;
导入flash.display.StageScaleMode;
导入flash.events.Event;
导入flash.geom.Point;
导入flash.geom.Rectangle;
导入flash.media.StageWebView;
导入flash.system.Capabilities;
导入flash.text.TextField;
导入flash.utils.flash\u代理;
导入mx.events.FlexEvent;
公共类映射扩展了Sprite
{   
私有静态结果:数组;
静态var myMap:TileMap=newtilemap(“我的键”);
静态var地理编码器:地理编码器;
公共静态常量布局:XML=
;
受保护的静态变量信息:UILabel;
公共静态函数initialize():void{
变量占位符:UIImageLoader=UIImageLoader(UI.findViewById(“占位符”);
占位符.scrollRect
占位符.addChild(myMap);
addControl(新的SMLargeZoomControl());
addControl(新的SMViewControl());
添加控件(新的MouseWheelZoomControl());
myMap.size=新尺寸(300400);
addControl(新的SMLargeZoomControl());
addControl(新的SMViewControl());
添加控件(新的MouseWheelZoomControl());
//创建一个新的TileMap对象,传递平台密钥
地理编码器=新地理编码器(myMap);
geocoder.addEventListener(GeocoderEvent.GEOCODE_响应,onGeocodeResponse);
geocoder.addEventListener(GeocoderEvent.GEOCODE_ERROR_事件,onGeocodeError);
geocoder.addEventListener(GeocoderEvent.HTTP_ERROR_事件,onHttpError);
doGeocode();
}
公共功能图()
{
超级();
}
专用静态函数onGeocodeResponse(e:GeocoderEvent):无效{
alResults=新数组();
每个(变量位置:e.geocoderResponse.位置中的GeocoderLocation){
var o:Object=新对象();
o、 LatLng=loc.displayLatLng.lat+”,“+loc.displayLatLng.lng;
o、 地理编码质量=位置地理编码质量;
o、 GeocodeQualityCode=loc.GeocodeQualityCode;
结果:推(o);
}
//this.dgResults.dataProvider=this.alResults;
//this.vgrpResults.visible=true;
}
私有静态函数doGeocode():void{
//从地图中删除所有形状
myMap.removeShapes();
//使用默认光标
//this.cursorManager.setBusyCursor();
//制作一个数组来保存地址
var arraddress:Array=new Array();
//将地址推送到阵列上
ArraAddresss.push(“placea”);
ArraAddresss.push(“位置b”);
//调用geocoder对象的geocode方法,传递地址数组
地理编码员。地理编码(阵列地址);
}
私有静态函数onGeocodeError(e:GeocoderEvent):void{
//this.cursorManager.removeBusyCursor();
makeErrorList(“地理编码器错误”);
}
/*
函数来处理结果中的错误
*/
私有静态函数onHttpError(e:GeocoderEvent):void{
//this.cursorManager.removeBusyCursor();
makeErrorList(“HTTP错误”);
}
/*
函数生成数组列表以保存错误
*/
私有静态函数makeErrorList(s:String):void{
var o:Object=新对象();
o、 LatLng=s;
结果:推(o);
//this.dgResults.dataProvider=this.alResults;
//this.vgrpResults.visible=true;
}
}
} 
有人知道我如何实现我的目标吗
非常感谢您的帮助。

我使用了scrollXY而不是搜索scroll,请参阅以下代码

package
{
    import com.danielfreeman.extendedMadness.UIScrollXY;
    import com.danielfreeman.madcomponents.*;
    import com.mapquest.*;
    import com.mapquest.services.geocode.*;
    import com.mapquest.tilemap.*;
    import com.mapquest.tilemap.controls.inputdevice.*;
    import com.mapquest.tilemap.controls.shadymeadow.*;
    import com.mapquest.tilemap.pois.*;

    import flash.display.Screen;
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.Event;
    import flash.geom.Point;
    import flash.geom.Rectangle;
    import flash.media.StageWebView;
    import flash.system.Capabilities;
    import flash.text.TextField;
    import flash.utils.flash_proxy;

    import mx.events.FlexEvent;



    public class map extends Sprite
    {   

        private static var alResults:Array;
    static  var   myMap:TileMap = new TileMap("My Key");
    static  var geocoder:Geocoder;


        public static const LAYOUT:XML = 
            <scrollXY tapToScale="3.0" stageColour="#666666" scrollBarColour="#FFFFFF" width="480" height="640" border="false" id="scroller">
                                    <imageLoader   id="placeholder"> </imageLoader  >
</scrollXY>;

        protected static var _message:UILabel;

        public static function initialize():void{
            var scroller:UIScrollXY = UIScrollXY(UI.findViewById("scroller"));
            scroller.addChild(myMap);

            /*var placeholder:UIImageLoader = UIImageLoader(UI.findViewById("placeholder"));
            placeholder.scrollRect
            placeholder.addChild(myMap);
        */  myMap.addControl(new SMLargeZoomControl());
            myMap.addControl(new SMViewControl());
            myMap.addControl(new MouseWheelZoomControl());

            myMap.size = new Size(300, 400);
            myMap.addControl(new SMLargeZoomControl());
            myMap.addControl(new SMViewControl());
            myMap.addControl(new MouseWheelZoomControl());

            // create a new TileMap object, passing your platform key
            geocoder = new Geocoder(myMap);

            geocoder.addEventListener(GeocoderEvent.GEOCODE_RESPONSE, onGeocodeResponse);
            geocoder.addEventListener(GeocoderEvent.GEOCODE_ERROR_EVENT, onGeocodeError);
            geocoder.addEventListener(GeocoderEvent.HTTP_ERROR_EVENT, onHttpError);
            doGeocode();
        }


        public function map()
        {
            super();

        }

        private static function onGeocodeResponse(e:GeocoderEvent):void {

            alResults = new Array();
            for each (var loc:GeocoderLocation in e.geocoderResponse.locations) {
                var o:Object = new Object();

                o.LatLng = loc.displayLatLng.lat + ", " + loc.displayLatLng.lng;
                o.GeocodeQuality = loc.geocodeQuality;
                o.GeocodeQualityCode = loc.geocodeQualityCode;

                alResults.push(o);
            }

            //this.dgResults.dataProvider = this.alResults;
            //this.vgrpResults.visible = true;
        }


        private static function doGeocode():void {    
            //remove all shapes form the map
            myMap.removeShapes();

            //use the default cursor
            //this.cursorManager.setBusyCursor();

            //make an array to hold the addresses
            var arrAddresses:Array = new Array();

            //push the addresses onto the array

            arrAddresses.push("Loc1");
            arrAddresses.push("Loc2");

            //call the geocoder object's geocode method, passing the array of addresses
            geocoder.geocode(arrAddresses);
        }

        private static function onGeocodeError(e:GeocoderEvent):void {
            //this.cursorManager.removeBusyCursor();
            makeErrorList("GEOCODER ERROR");
        }


        /*
        function to handle an error in the result
        */
        private static function onHttpError(e:GeocoderEvent):void {
            //this.cursorManager.removeBusyCursor();
            makeErrorList("HTTP ERROR");
        }



        /*
        function to make an array list to hold an error
        */
        private static function makeErrorList(s:String):void {
            var o:Object = new Object();
            o.LatLng = s;
            alResults.push(o);

            //this.dgResults.dataProvider = this.alResults;
            //this.vgrpResults.visible = true;
        }




    }
}
包
{
导入com.danielfreeman.extendedMadness.uiscrolxy;
导入com.danielfreeman.madcomponents.*;
导入com.mapquest.*;
导入com.mapquest.services.geocode.*;
导入com.mapquest.tilemap.*;
导入com.mapquest.tilemap.controls.inputdevice.*;
导入com.mapquest.tilemap.controls.shadymadow.*;
导入com.mapquest.tilemap.pois.*;
导入flash.display.Screen;
导入flash.display.Sprite;
导入flash.display.Stage;
导入flash.display.StageAlign;
导入flash.display.StageScaleMode;
导入flash.events.Event;
导入flash.geom.Point;
导入flash.geom.Rectangle;
导入flash.media.StageWebView;
导入flash.system.Capabilities;
导入flash.text.TextField;
导入flash.utils.flash\u代理;
导入mx.events.FlexEvent;
公共类映射扩展了Sprite
{   
私有静态结果:数组;
静态var myMap:TileMap=newtilemap(“我的键”);
静态var地理编码器:地理编码器;
公共静态常量布局:XML=
;