[as3]FlexSDKでGoogleMaps API for Flash
Posted on 6月 12, 2008
Filed Under flex, flash, GoogleMaps |
Google Maps API for Flashお試し中
例によってFlexSDK。
ver: map_flex_1_4.swc
いくつか異常に重い処理がある
呼び出し順によってなんでこんなに違うんだ!?なんかよくわからないけど直った。
Flex[23]SDKでやるとUIComponentの中に入れないから、Mapのサイズを手動設定しないといけない(?)んだけどそのタイミングによっては異常に時間がかかる(?)
以下のならok
Actionscript:
-
map = new Map;
-
map.key = Params.key;
-
addChild( map );
-
map.addEventListener(MapEvent.MAP_READY, function(e:MapEvent) :void {
-
map.removeEventListener( MapEvent.MAP_READY, arguments.callee );
-
map.setSize( new Point(stage.stageWidth,stage.stageHeight) );
-
map.setCenter(
-
new LatLng(Params.MAP_INITIAL_CENTER_LAT,Params.MAP_INITIAL_CENTER_LNG),
-
3,
-
MapType.HYBRID_MAP_TYPE);
-
-
map.enableScrollWheelZoom();
-
map.enableContinuousZoom();
-
map.addControl( new PositionControl() );
-
map.addControl( new ZoomControl() );
-
map.addControl( new MapTypeControl() );
-
});
-
map.addEventListener(MapMoveEvent.MOVE_END, function(e:MapMoveEvent) :void {
-
//mapRefreshed();
-
});
-
map.addEventListener(MapMouseEvent.CLICK, function(e:MapMouseEvent):void{
-
logger("[CLICK]pos: "+e.latLng);
-
});
keyはこんなふうに設定するのがいいのかなぁ
Paramsクラス
Actionscript:
-
public static function get key() :String {
-
var loadedFrom :String = stage.loaderInfo.loaderURL.match(/^(https?:\/\/[^\/]+)/)[1];
-
if ( flashvars["key"] ) {
-
return flashvars["key"];
-
}
-
switch ( loadedFrom ) {
-
case "http://production.com":
-
return "key_for_production";
-
case "http://dev.production.com":
-
return "key_for_dev";
-
}
-
return "key_for_localhost";
-
}
Comments
Leave a Reply