トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     GoogleMap の再表示でエラー
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
two_line
Åê¹ÆNo.40884
投稿日時: 2008-11-29 0:01
新米
居住地: Yokohama, Japan
投稿: 16
使用環境:
GoogleMap の再表示でエラー
お世話になっております。

今回はGoogle Map API for FLASHに関する質問です。
下記に挙げているコードを実行し、それから
"openBtn"というMCインスタンスをクリック、
"closeBtn"というMCインスタンスをクリック、
再度"openBtn"というMCインスタンスをクリックすると
---------------------------
Error: Object not initialized
at com.google.maps.wrappers::Wrapper$/checkValid()
at com.google.maps.wrappers::IMapWrapper/isLoaded()
at com.google.maps::Map/isLoaded()
at com.google.maps::Map/internalSetSize()
at com.google.maps::Map/setSize()
at MethodInfo-1525()
---------------------------
というエラーが発生します。
どう回避すればよいのか、何故起こるのか、教えて頂きたいです。


01    import com.google.maps.LatLng;    
02    import com.google.maps.Map;    
03    import com.google.maps.MapEvent;    
04    import com.google.maps.MapType;    
05    import com.google.maps.controls.OverviewMapControl;    
06    import com.google.maps.controls.OverviewMapControlOptions;    
07        
08    var map:Map;    
09    // "openBtn"というMovieClipをステージ上に用意
10    openBtn.buttonMode = true;    
11    openBtn.x = 500 + 10;    
12    openBtn.y = 0;    
13    openBtn.addEventListener(MouseEvent.CLICK, function(e:MouseEvent){;    
14        map = new Map();
15        map.key = "<APIキー>";
16        map.setSize (new Point(500, 300));
17        map.addEventListener (MapEvent.MAP_READY, onMapReady);
18        map.addControl (new OverviewMapControl());
19        stage.addChild(map);
20    });    
21    // "closeBtn"というMovieClipをステージ上に用意    
22    closeBtn.buttonMode = true;    
23    closeBtn.x = 500 + 10;    
24    closeBtn.y = 30;    
25    closeBtn.addEventListener(MouseEvent.CLICK, function(e:MouseEvent){;    
26        stage.removeChild (map);
27        map = null;
28    });    
29        
30    function onMapReady (event:Event):void {    
31        var asia:LatLng = new LatLng(35.679923, 139.766521);
32        map.setCenter (asia, 14, MapType.NORMAL_MAP_TYPE);
33        map.removeEventListener(MapEvent.MAP_READY, onMapReady);
34    }    



エラーログからの推測としては、
mapというオブジェクトのメモリが解放されていないためではないかと考えました。
その推測から、addEventListenerにて第五引数をfalse(弱参照)にすれば解放され、
初期化されるのではないかと考えましたが、外れていたようです。
mapにnullをしても、removeEventListenerで参照を切るようにしても結果は同じでした。

それでは、宜しくお願いいたします。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » GoogleMap の再表示でエラー two_line 2008-11-29 0:01
     Re: GoogleMap の再表示でエラー two_line 2008-11-30 15:12
       Re: GoogleMap の再表示でエラー kingofkofs 2008-12-1 11:08
         Re: GoogleMap の再表示でエラー two_line 2008-12-6 1:07

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops