JavaScript版の忠実な移植に近い
package
{
import flash.events.Event;
import com.google.maps.Map;
import com.google.maps.MapEvent;
import com.google.maps.MapType;
import com.google.maps.LatLng;
public class Main extends Map
{
public function Main():void
{
super();
addEventListener(MapEvent.MAP_READY, onMapReady);
}
private function onMapReady(event:MapEvent):void {
setCenter(new LatLng(40.730672, -73.992062), 14, MapType.NORMAL_MAP_TYPE);
}
}
}
<object
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
width="50%"
height="50%">
<param name="movie" value="./swf/Main.swf">
<param name="quality" value="high">
<param name="flashVars" value="key=APIキーとか">
<embed
width="50%"
height="50%"
src="./swf/Main.swf"
flashVars="key=APIキーとか"
quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash">
</embed>
</object>
public class Main2 extends Sprite
{
private var map:Map;
private var key:String;
public function Main2()
{
stage.scaleMode = "showAll";
key = "MAPのAPIキーをここに書く";
map = new Map();
map.key = key;
map.setSize(new Point(640, 480));
map.addEventListener(MapEvent.MAP_READY, onMapReady);
addChild(map);
}
private function onMapReady(event:MapEvent):void
{
map.setCenter(new LatLng(35.16999, 136.908031), 14, MapType.NORMAL_MAP_TYPE);
}
}
// import部分 import com.google.maps.controls.PositionControl; import com.google.maps.controls.ZoomControl; import com.google.maps.controls.ZoomControlOptions;
// クラス内
private function onMapReady(event:MapEvent):void
{
map.setCenter(new LatLng(35.16999, 136.908031), 14, MapType.NORMAL_MAP_TYPE);
map.addControl(new PositionControl());
map.addControl(new MapTypeControl());
map.addControl(new ZoomControl());
//map.addControl(new ZoomControl(new ZoomControlOptions( { hasScrollTrack:false } )));
}
public class ControlTextualZoom extends ControlBase
{
// 画像の読込み
[Embed(source="search_plus.png")] private var PlusImage:Class;
[Embed(source="search_minus.png")] private var MinusImage:Class;
public function ControlTextualZoom()
{
// コントロールの表示する位置を指定
super(new ControlPosition(ControlPosition.ANCHOR_TOP_LEFT, 7, 7));
}
public override function initControlWithMap(map:IMap):void
{
// ボタンの作成
createButton(1, 0, 0, function(event:Event):void{ map.zoomIn(); } );
createButton(2, 0, 60,function(event:Event):void{ map.zoomOut(); } );
}
private function createButton(type:Number,x:Number,y:Number,callback:Function):void
{
var button:Sprite = new Sprite();
var img:Bitmap;
if (type == 1) {
img = new PlusImage() as Bitmap;
} else {
img = new MinusImage() as Bitmap;
}
button.addChild(img);
button.x = x;
button.y = y;
button.addEventListener(MouseEvent.CLICK, callback);
addChild(button);
}
}
// メインクラス内
private function onMapReady(event:MapEvent):void
{
map.setCenter(new LatLng(35.16999, 136.908031), 14, MapType.NORMAL_MAP_TYPE);
map.addControl(new ControlTextualZoom());
}