2012-04-05 22 views
2

現在、ブラウザのデバッグウィンドウにブレークポイントを設定しようとしています。クリックイベントが発生するたびに、ブレークポイントによってGoogle Earthプラグインがクラッシュします。クリック時にGoogle Earthプラグインがクラッシュする

クラッシュを避けるために欠けている方法はありますか?私は、ブレークポイント上の別のkmlプロパティを試してみるのに簡単にアクセスしたいだけです。私は、GEがクリックされたときに、ボックスがクラッシュするのを防ぐためのアラートボックスでタイムアウトに似た機能が欠けていました。

ChromeとIEの両方でデバッグしようとしました。

これはGoogle Earthの基本的なコードです。

google.earth.createInstance(this, initCB, failureCB, earthArgs); 

this

は、マップのdivであると earthArgsは、データベースの場所

............

Clickイベントのコードを保持している:

function initCB(instance) { 
    gep = instance; 
    gep.getWindow().setVisibility(true); 

    google.earth.addEventListener(gep.getGlobe(), 'click', function(event) { 
    //set breakpoint here 
    }); 
} 

コードを問題なくGEを動作させてロードすると、GEをクリックするとブレークポイントがフリーズするという問題があります。

+0

私は簡単な回避策を作成しました。私はそれを答えとは考えていません。グローバル変数を作成し、イベントが発生したときにイベントオブジェクトと同じに設定します。その後、別のイベント(GEの外側にあるボタンを押す)にブレークポイントがあります。 少なくとも私がプレイしたい変数にアクセスできます。 – goodwince

+0

あなたは実際に助けを得るためにいくつかのコードを投稿する必要があります.... – Fraser

+1

これは問題に役立つことを願っていますか?私は混乱を見ることができます。もう一度あなたから聞いてよかったよ。Fraser haha​​。 – goodwince

答えて

0

イベントハンドラに匿名の代理人を使用している可能性があります。ブレークポイントを設定するには、名前付き関数を作成してaddEventListenerメソッドに渡します。

// handle click events on the globe 
// e is the KmlMouseEvent object 
var globeClickHandler = function(e) { 
    // set breakpoint here 
}; 

// in initCB 
google.earth.addEventListener(gep.getGlobe(), 'click', globeClickHandler); 
+0

別の観点から見ていただきありがとうございます。あなたの方法を試してみました。私も試しました.. function globeClickHandler(e){//ブレークポイントがクラッシュする} – goodwince

0

別のイベントを使用した場合はどうなりますか? 「マウス」または「マウスアップ」と言う?

google.earth.addEventListener(gep.GetGlobe(), 'mouseup', function(event){ 
    //do something here 
}); 
関連する問題