あなたのコメントによると、TJ が話していた内容は次のとおりです。2 番目のスクリプト ブロックを次のように変更する必要があります。
<script type="application/javascript" src="Resources/JavaScript/proj4js-combined.js"></script>
<script type="application/javascript">
function mouseMove(sender,eventArgs) {
var source = new Proj4js.Proj('EPSG:3116');
var dest = new Proj4js.Proj('WGS84');
var p = new Proj4js.Point(px, py);
Proj4js.transform(source, dest, p);
}
</script>
...しかし、実際にはインライン コード ブロック (<script>
私の回答の 2 番目のタグの内側にあるもの) を外部 Javascript ファイルに移動する必要があります。
編集 1:プログラミングのバックグラウンドは何ですか? それが C# や Java のようなものである場合は、それらについて知っていることを忘れて、まったく別の方法で Javascript にアプローチする必要があります。Javascript はコンパイルされた言語ではなく、解釈された言語です。とりわけ、これは関数が宣言される順序が重要であることを意味します。
「関数宣言」とは、次のようなものを意味します。
function myNewFunction()
{
// anything else here
}
これは、Javascript インタープリターに という新しい関数について伝えます。この関数myNewFunction
の本体は中括弧内にあるもので構成されます。
これは、宣言する前に関数を使用していると私が言っていることの例です。次のコード ブロックを考えてみましょう (たとえば、外部 Javascript ファイル内の他の Javascript から分離して):
function foo() // this line declares the function called "foo"
{
}
function bar() // this line declares the function called "bar"
{
foo(); // this line invokes the previously declared function called "foo"
}
これは、foo()
呼び出す前に宣言されているため、期待どおりに機能します。ただし、(次のように聞こえますが) やろうとしていることは、次のようなものです。
function foo() // this line declares the function called "foo"
{
bar(); // this line tries to invoke the function called "bar"
// but it hasn't been declared yet! so it's undefined
}
function bar() // this line declares the function called "bar"
{
}
この 2 番目の Javascript スニペットを実行しても、宣言される前に関数を呼び出しているため、機能しません。*
*脚注: これは実際には当てはまりません。なぜなら、この構文 ( function foo() { ... }
) を使用すると、Javascript で特別で魔法のようなことができるからです。私の特定の例は実際には機能しますが、あなたが抱えている問題を示しています。