1

Sencha touch 2 で定義された Google マップがあります。マップは表示されますが、タッチ イベントに応答しません。動かしたり、つまんだりすることはできません。

Ext.define('AddressBook.view.contact.Show', {
    extend: 'Ext.Panel',
    xtype: 'contact-show',
    requires: [
        'Ext.Map'
    ],
    config: {
        title: 'Information',
        layout: 'card',
        items: [
            {
                xtype: 'map',
                mapOptions : {
                    zoom : 15,
                    mapTypeId : google.maps.MapTypeId.ROADMAP,
                    navigationControl: true,
                    navigationControlOptions: {
                        style: google.maps.NavigationControlStyle.DEFAULT
                    }
                }
            }
        ]
    },

    centerMap: function(newRecord) {
        ...
    },

    setMarkers: function(markers) {
        ...
    }
});

app.js で作成しました:

Ext.Loader.setConfig({ enabled: true });

Ext.application({
    ...

    launch: function() {
        Ext.Viewport.add({
            xclass: 'AddressBook.view.contact.Show'
        });
    }
});

Googleスクリプトを含めます:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"</script>

問題は、 Sencha が提供している"Map" の例がうまく機能しているように見えるということです。しかし、app.js でマップを表示するために Ext.setup() と Ext.create() を使用しています。なぜそのようにうまく機能しているのか、私には理解できません。しかし、その方法でマップを作成することもできません。誰が問題を知っていますか?

4

1 に答える 1

0

問題が見つかりました。機能した Sencha の「マップ」の例には、サンプルには存在しないスクリプトが含まれていますが、プロジェクトのテンプレートとして使用した別のサンプルには存在します。

<link rel="stylesheet" href="css/example.css" type="text/css"/>

この存在しないスクリプトのために、Google マップは「マップ」の例で機能しています。

つまり、Google マップを使用してプロジェクトに含めると、無反応になります。最終的に問題を見つけるために「マップ」の例を削除する必要がありました。例になる前にコードをクリーンアップしなかった誰かのおかげで、多くの時間がかかりました!

ところで、これが「navigationview」の例でも Google マップがフリーズしている理由です。これは、スタイルを表示するためにこの破損したスクリプトが必要なためです。

私は Sencha チームに、この紛らわしいコードをサンプルから削除するよう依頼します。

于 2012-09-25T08:49:16.473 に答える