Google Maps をぐーるぐる

さっそく Google Maps API for Flash で遊んでみた。

公式のチュートリアルを見ると MXML 必須のように見えるが、Map クラス自体は Sprite を継承してるので、AS3 の範囲だけで遊べる。

回転、フィルタが自由自在ですよ、ということで、ぐるぐる回してみた。ドラッグ時にはマップ全体がぼやけます。

ソースコードはこちら。

package {
    import flash.events.Event;
    import flash.geom.Matrix;
    import flash.filters.BlurFilter;
    import com.google.maps.Map;
    import com.google.maps.MapEvent;
    import com.google.maps.MapType;
    import com.google.maps.LatLng;

    public class GoogleGuruGuru extends Map {
        public function GoogleGuruGuru() {
            super();
            key = "ABQIAAAA6de2NwhEAYfH7t7oAYcX3xRWPxFShKMZYAUclLzloAj2mNQgoRQZnk8BRyG0g_m2di3bWaT-Ji54Lg";

            addEventListener(MapEvent.MAP_READY, function(event:Event):void{
                setCenter(new LatLng(35.003759, 135.769322), 18, MapType.NORMAL_MAP_TYPE);
            });

            var r:int = 0;
            var scale:Number = 1;
            addEventListener("enterFrame", function(event:Event):void{
                r = (r + 1) % 360;
                var rad:Number = 2 * Math.PI * r / 360;

                var matrix:Matrix = new Matrix();
                matrix.translate(-stage.stageWidth / 2, -stage.stageHeight / 2);
                matrix.rotate(rad);
                matrix.translate(stage.stageWidth / 2, stage.stageHeight / 2);
                transform.matrix = matrix;
            });

            stage.addEventListener("mouseDown", function(event:Event):void{
                filters = [new BlurFilter(10, 10)];
            }, true);
            stage.addEventListener("mouseUp", function(event:Event):void{
                filters = [];
            });
        }
    }
}