1

を使用して Web ベースのゲームを開発していますprocessing.js。私の質問は、ブラウザ ウィンドウを管理するための純粋な JavaScript コードに関するものです。

このゲームは小さなブラウザー ウィンドウ (200px*200px) の迷路で、各境界線は壁または別のウィンドウへの通路になります。私の問題は、元のウィンドウを閉じると、以前に使用したのと同じ機能を使用しても、元に戻そうとしても再び開かないことです。

ここで実行されている git リポジトリがあります: GitHub - TheMidst

「エラー」を再現したい場合:

github からコードをプルします。

  1. 起動index.htmlします (お気に入りのブラウザーでは、私はクロムを使用しています)。
  2. 待ってから開くをクリックしないでくださいstart button -> level0.html
  3. canvas-> level1.html開口部の右側をクリックして右側に進みます。
  4. steps -> level0.html静止画に戻ります。
  5. 向かって右に戻るlevel1.htmlとリスポーンしません... =>これは私の問題です。

/js -> 関数を介してウィンドウの開閉を処理する windowScripts.js が含まれています。これは私のウィンドウ マネージャーの心臓部であり、バグがあります。

/levels -> 各レベルが HTML ページとして含まれています。

/pd -> ゲームのサウンドが Pure-Data パッチとして含まれています (ええ!)

ゲームはまだ完成にはほど遠いので、すべてが完璧には程遠いです。どんな助けでも大歓迎です。

乾杯。

いくつかのコードを追加するために編集

私が使用するポップアップを開くには:popUp(1); //1 は開きたいレベルの番号です。

これはこのjs関数に関連しています

関数 popUp(winNum) {

var windowFeatures = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,left="+(winVars[winNum][0])+",top="+(winVars[winNum][1])+",width="+winVars[winNum][2]+",height="+winVars[winNum][3];


windows[winNum] = window.open( "level"+winNum+".html", "myWindow"+winNum, windowFeatures);


windows[winNum].moveTo(winVars[winNum][0],winVars[winNum][1]);

}

私のすべてのウィンドウプロパティは配列に格納されています

私が使用するウィンドウを閉じるには:closeWindows(0); // 0 は閉じたいウィンドウの番号です。

関数 closeWindows(winNum2){

setTimeout (widows[winNum2] = window.close(),50); }


実際には、親ウィンドウなどの間に少し混乱がありました...

「window.opener.popUp(myPopup)」を使用すると問題が修正されました

github リポジトリにいくつかの変更が加えられました。同じ問題がある場合は、引き続き github リポジトリを参照できます。

乾杯

4

1 に答える 1

0

原則として、複数のブラウザー ウィンドウを使用することはお勧めできません。これは、ポップアップやポップアンダーなど、あらゆる種類のブラウザー マルウェアが使用するインターフェイスとまったく同じであるためです。実際、それが原因で、実際に見ている動作が発生している可能性は十分にあります。

代わりに、複数のタイルが必要なため、絶対配置div要素を使用してください。

于 2012-11-06T15:51:32.933 に答える