2016-08-24 1 views
0

カスタムビルドの "pointerEvent"のエクスポート先が見つかりません。私は2つの場所でのポインタイベントの "shiftKey"ステータスをチェックしています。 boxendイベントでカスタムビルドwith pointerEvent

evt.pointerEvent.shiftKey

  • evt.mapBrowserEvent.pointerEvent.shiftKey

  • I singleclickイベントに

    1. 私のビルドconfig.jsonファイルに何が必要なのか分からないようです。私は "ol.interaction。*"と "ol.events。*"のいろいろな組み合わせを試してみました。私は "ポインタイベント"と "mapBrowserEvent.pointerEvent"の出現のためのソースをgrep'dし、それらをエクスポートで参照しようとしましたが、私はこの時点でかなり推測しています。

      おかげ

    答えて

    0

    UPDATE:

    いくつかのテスト:このcustom build(86キロバイト)と

    カスタムbuild.jsonfiddle

    { 
        "exports": [ 
        "ol.Map", 
        "ol.Map#on", 
        "ol.Map#addInteraction", 
        "ol.layer.Tile", 
        "ol.source.OSM", 
        "ol.interaction.DragBox", 
        "ol.interaction.DragBox#on", 
        "ol.events.condition.shiftKeyOnly", 
        "ol.View" 
        ], 
        "compile": { 
        "externs": [ 
         "externs/closure-compiler.js", 
         "externs/oli.js", 
         "externs/olx.js", 
         "externs/proj4js.js" 
        ], 
        "define": [ 
         "ol.ENABLE_DOM=false", 
         "ol.ENABLE_WEBGL=false", 
         "ol.ENABLE_PROJ4JS=false", 
         "ol.ENABLE_VECTOR=false", 
         "goog.array.ASSUME_NATIVE_FUNCTIONS=true", 
         "goog.DEBUG=false" 
        ], 
        "extra_annotation_name": [ 
         "api", "observable" 
        ], 
        "compilation_level": "ADVANCED", 
        "manage_closure_dependencies": true 
        } 
    } 
    

    あなたconfig.jsonに入れなければならない特別なことは何もはありません。

    あなたの輸出アレイに追加します。

    "exports": [ 
        ... 
        "ol.events.condition.shiftKeyOnly" 
        ] 
    

    は、ビルド後にこれを試してみてください:おそらく

    map.on('singleclick', function(evt){ 
        console.info(ol.events.condition.shiftKeyOnly(evt)); 
    }); 
    
    +0

    ありがとう、私のカスタムビルドでは、あなたのサンプルが生成されます:TypeError:ol.events.condition.shiftKeyOnlyは関数ではありません –

    +0

    @RichardGreenwood更新された答えを参照してください。 –

    +0

    ありがとうが、私はすでにそれを持っていた。さまざまなことを試して、上記のエラーがデバッグビルドではなく、デバッグビルドでは得られないことがわかりました。だから私の問題は "輸出"セクションにはないようです。 –

    0

    ない偉大な答え私は「なぜ」が、レコードのを理解していないので - 私はsingleClickイベントの後にshiftKeyステータスをチェックしています。デバッグビルドol3の次のコードが動作します。

    myVar = evt.pointerEvent.shiftKey; // only works with a debug build 
    

    しかし、デバッグされないol3ビルドでは失敗します。非デバッグビルドで以下のバージョンでは動作します:

    myVar = ol.events.condition.shiftKeyOnly(evt); 
    

    boxendイベントは、イベントオブジェクトのmapBrowserEventプロパティを追加した後shiftKeyの状態を確認するために:私は「非デバッグを言うとき

    myVar = ol.events.condition.shiftKeyOnly(evt.mapBrowserEvent); 
    

    を"ol3ビルド上記の" compilation_level "ディレクティブが" ADVANCED "に設定されていることを指しています。

    関連する問題