私は paper.js から始めています。範囲内で実行される text/paperscript MIME タイプのスクリプトを持つ可能性が導入されるという事実が気に入っています。ただし、スクリプトはすぐに大きくなる可能性があるため、読みやすくするために複数のスクリプトに分割できるようにしたいと考えています。複数の script タグを追加して、それらをすべて同じスコープで実行できると思っていましたが、明らかにそうではありません。
両方のスクリプトが読み込まれ、実行されますが、2 番目のスクリプトはペーパー スコープに含まれていないようです。
ここに例を設定しました: http://barbata.nl/SO/Maps/この例にはいくつかのコードがありますが、重要な部分を指摘します。
2 つのペーパースクリプトが含まれています。
Maps.js はメイン スクリプトで、画像をラスタライズして移動できるようにします。このスクリプトのコードは、今のところ問題なく動作するため、無視してかまいません。
Zoom.js は、ズーム機能を分離したかったスクリプトです。Paper.js にはそのイベントがないように見えるため、jq.mobi を使用してマウスのスクロール ホイールをキャプチャします。次に、Paper と同様の方法で、onMouseScroll の呼び出しに変換します。
ここまでは順調ですね。実際の問題は、zoom.jsのzoomIn
および関数で発生します。zoomOut
明示的に用紙オブジェクトを使用して、ズームしたいビューを参照すると機能します。
function zoomIn()
{
if (paper.view.zoom < 2)
{
paper.view.zoom = paper.view.zoom * 2;
}
}
しかしpaper
、ビューを削除して参照すると失敗します。
function zoomIn()
{
if (view.zoom < 2)
{
view.zoom = view.zoom * 2;
}
}
スクリプトは Paperscope で実行される Paperscript であると予想していたので、これには驚きました。このコードを Maps.js に入れると問題なく動作するため、Paper.js によって zoom.js が読み込まれますが (ブラウザーの開発者ツールでこれが確認されます)、Paperscope では実行されないようです。
私の質問は次のとおりです。私の調査結果は正しいですか? 私は何か間違ったことをしていますか?読みやすくするために Paper.js アプリケーションを複数のユニットに分割する正しい方法は何ですか?
もちろん、実行することはできますが、正しく実行できるようにしたいと考えています。