API карты Google в as3, StyledMapType - PullRequest
0 голосов
/ 11 января 2012

У меня исключение нулевой ссылки при создании экземпляра 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 (стили, параметры);

Программа запускается.Пожалуйста, помогите мне.Я часами пытался найти решение и проблему.

Спасибо

1 Ответ

0 голосов
/ 23 января 2012

Вам необходимо зарегистрировать прослушиватель событий на MAP_READY и поместить этот код в свой прослушиватель.Вероятно, ошибка возникает из-за того, что объект карты Google еще не полностью создан.

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);
}
...