2012-01-11 49 views
0

爲空引用例外,我實例StyledMapType的谷歌地圖API在AS3,StyledMapType的

var styles:Array = [ 
new MapTypeStyle(
MapTypeStyleFeatureType.ALL, 
MapTypeStyleElementType.ALL, 
[ 
MapTypeStyleRule.visibility("on"), 
MapTypeStyleRule.hue(0xff0000), 
MapTypeStyleRule.saturation(100), 
MapTypeStyleRule.lightness(-50), 
MapTypeStyleRule.gamma(1.0) 
] 
) 
]; 

var options:StyledMapTypeOptions = new StyledMapTypeOptions({ 
name: 'Styled map', 
alt: 'Style', 
minResolution: 2, 
maxResolution: 12 
}); 

var styledMapType:StyledMapType = new StyledMapType(styles, options); 

我收到此錯誤時:

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
    at com.google.maps::StyledMapType() 
    at com::Main/init() 
    at com::Main() 

但是,當我忽略此行:

var styledMapType:StyledMapType = new StyledMapType(styles, options);

程序運行。請幫助我。我一直在努力尋找解決方案和問題幾個小時。

感謝

回答

0

您需要註冊的MAP_READY事件偵聽器,並把這個代碼在你的聽衆。該錯誤可能是因爲您的谷歌地圖對象尚未完全實例化。

public function somefunction(): void 
{ 
    yourGoogleMapobject.addEventListener(MapEvent.MAP_READY, onMapReady); 
} 

private function onMapReady(event:Event):void 
{ 
    var styles:Array = [ 
    new MapTypeStyle(
    MapTypeStyleFeatureType.ALL, 
    MapTypeStyleElementType.ALL, 
    [ 
    MapTypeStyleRule.visibility("on"), 
    MapTypeStyleRule.hue(0xff0000), 
    MapTypeStyleRule.saturation(100), 
    MapTypeStyleRule.lightness(-50), 
    MapTypeStyleRule.gamma(1.0) 
    ] 
    ) 
    ]; 

    var options:StyledMapTypeOptions = new StyledMapTypeOptions({ 
    name: 'Styled map', 
    alt: 'Style', 
    minResolution: 2, 
    maxResolution: 12 
    }); 

    var styledMapType:StyledMapType = new StyledMapType(styles, options); 
}