Google Static Maps使って、地図画像をFlashに読み込めるか実験したら、YESともNOともつかない微妙な結果に・・・。

このエントリをはてなブックマークに追加このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加このエントリをkwoutに追加
2008年3月17日 月曜日0:06:00

まぁ、今回はネタの紹介って事で。
ソースの方も、ハッキリ言って簡単すぎて態々載せたくない。
画像ロードはコンストラクタ内だけで実現できてて、他の関数は全部ドラッグアンドドロップ関連。

package  {
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.events.MouseEvent;
    import flash.events.SecurityErrorEvent;
    import flash.geom.Point;
    import flash.net.URLRequest;
    import flash.system.LoaderContext;
   
    public class GoogleMapDemo extends Sprite{
       
        private var imgLoader:Loader = new Loader();
        private var dragStart:Point;
       
        public function GoogleMapDemo() {
           
            imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE , completeHandler);
            imgLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR , loadErrorHandler);
            imgLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR , loadErrorHandler);
            imgLoader.load(new URLRequest("http://maps.google.com/staticmap?center=35.69045,139.695754&zoom=16&size=512x512&maptype=roadmap&key=<あなたのAPIキー>"));
            imgLoader.x = imgLoader.y = -128;
            this.addChild(imgLoader);
        }
       
        private function loadErrorHandler(e:Event):void {
           
        }
       
        private function completeHandler(e:Event):void {
            this.addEventListener(MouseEvent.MOUSE_DOWN , mouseDonwHandler);
            this.addEventListener(MouseEvent.MOUSE_UP , mouseUpHandler);
            this.addEventListener(MouseEvent.MOUSE_OUT , mouseUpHandler);
           
        }

        private function mouseDonwHandler(evt:MouseEvent):void {
            this.dragStart = new Point(evt.stageX , evt.stageY);
            try {
                this.removeEventListener(MouseEvent.MOUSE_MOVE , dragMap);
            } catch (e:Error) { trace(e); }

            this.addEventListener(MouseEvent.MOUSE_MOVE , dragMap);
        }

        private function mouseUpHandler(evt:MouseEvent):void {
            try {
                this.removeEventListener(MouseEvent.MOUSE_MOVE , dragMap);
            } catch (e:Error) { trace(e); }
        }

        private function dragMap(e:MouseEvent):void {
            this.imgLoader.x += e.stageX - this.dragStart.x;
            this.imgLoader.y += e.stageY - this.dragStart.y;
            if (this.imgLoader.x> 0) {
                this.imgLoader.x =0;
            }
            if (this.imgLoader.y> 0) {
                this.imgLoader.y = 0;
            }
            if (this.imgLoader.x <= -256) {
                this.imgLoader.x = -256;
            }
            if (this.imgLoader.y <= -256) {
                this.imgLoader.y = -256;
            }
            this.dragStart.x = e.stageX;
            this.dragStart.y = e.stageY;
        }
    }
   
}

  • ページ:
  • 1
  • 2

TrackBack URL :

HTML convert time: 1.027 sec.