maaash.jp

what I create

[as3]FlexSDKでGoogleMaps API for Flash

Google Maps API for Flashお試し中
例によってFlexSDK。
ver: map_flex_1_4.swc

いくつか異常に重い処理がある
呼び出し順によってなんでこんなに違うんだ!?なんかよくわからないけど直った。

Flex[23]SDKでやるとUIComponentの中に入れないから、Mapのサイズを手動設定しないといけない(?)んだけどそのタイミングによっては異常に時間がかかる(?)

以下のならok
[as]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);
});
[/as]

keyはこんなふうに設定するのがいいのかなぁ
Paramsクラス
[as]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”;
}[/as]

Comments