OSDN Git Service

一部ブラウザではローカルのステージ遷移に対応か?
authorttwilb <ttwilb@users.sourceforge.jp>
Fri, 6 Sep 2013 14:40:13 +0000 (23:40 +0900)
committerttwilb <ttwilb@users.sourceforge.jp>
Fri, 6 Sep 2013 14:40:13 +0000 (23:40 +0900)
www/corelib/core.js
www/index_local_debug.html

index 4bb252a..b7e0b18 100644 (file)
@@ -115,6 +115,9 @@ function GameManager(parent, debugTextName){
        this.stagePausedInitFunctions = [];
        
        this.backgroundMusic = null;
+       
+       // loadStageFromLocal でtrueにされる
+       this.isLocalMode = false;
 
        //**イベントリスナー設定**
        //コールバックを行うために、イベントリスナーのmanagerプロパティにGameManagerのインスタンスを代入する。
@@ -338,30 +341,48 @@ GameManager.prototype = {
                URL_PCD_Auth = URL_PCD_Root + "auth.php";
                URL_PCD_Audio = URL_PCD_Root + "audio/";
                URL_PCD_Stage = URL_PCD_Root + "stage/";
+               this.isLocalMode = true;
                
                var stage = eval(code);
                mainManager.runStage(stage);
        },
        loadStageFromNetwork: function(name){
-               //URL_PCD_Stage/name.jsを利用してステージを作成する。
-               var request = this.networkManager.CreateRequestObject();
-               //同期モード
-               request.open('GET', URL_PCD_Stage + name + ".js", false);
-               this.networkManager.RequestObjectDisableCache(request);
-               request.send(null);
                
-               if(request.status == 0){
-                       alert("ネットワークにアクセスできません。" + request.status + ":" + request.statusText);
-               }else if((200 <= request.status && request.status < 300) || (request.status == 304)){
-                       var stage = eval(request.responseText);
-                       this.stopStage();
-                       this.runningStageName = name;
-                       if(this.runningStageName != name){
-                               alert("e");
+               if(this.isLocalMode)
+               {
+                       if(localModeLoadHandler)
+                       {
+                               var val = localModeLoadHandler(name);
+                               var stage = eval(val);
+                               this.stopStage();
+                               this.runningStageName = name;
+                               this.runStage(stage);
+                       }else
+                       {
+                               throw "ローカルモードではステージを超えたデバッグはできません";
+                       }
+               }else
+               {
+                       //URL_PCD_Stage/name.jsを利用してステージを作成する。
+                       var request = this.networkManager.CreateRequestObject();
+                       //同期モード
+                       request.open('GET', URL_PCD_Stage + name + ".js", false);
+                       this.networkManager.RequestObjectDisableCache(request);
+                       request.send(null);
+                       
+                       if(request.status == 0){
+                               alert("ネットワークにアクセスできません。" + request.status + ":" + request.statusText);
+                       }else if((200 <= request.status && request.status < 300) || (request.status == 304)){
+                               var stage = eval(request.responseText);
+                               this.stopStage();
+                               this.runningStageName = name;
+                               if(this.runningStageName != name){
+                                       alert("e");
+                               }
+                               this.runStage(stage);
+                       }else{
+                               alert("サーバーがエラーを返しました。" + request.status + ":" + request.statusText);
                        }
-                       this.runStage(stage);
-               }else{
-                       alert("サーバーがエラーを返しました。" + request.status + ":" + request.statusText);
                }
        },
        debugOut: function(str){
index e7a4092..6f80d5c 100644 (file)
@@ -14,6 +14,7 @@
                line-height: 1.2;
        }
 </style>
+<script type="text/javascript" src="./editor/include/jquery.js" charset="UTF-8"></script>
 <script type="text/javascript" src="./corelib/header.js" charset="UTF-8"></script>
 <script type="text/javascript">
 
@@ -87,6 +88,14 @@ function reload()
        location.reload();
 }
 
+function localModeLoadHandler(stgName)
+{
+       $('#stageCode').text("xx");
+       $('#stageCode').load("./stage/" + stgName + ".js");
+       for(;$('#stageCode').text() == "xx";){ }
+       return $('#stageCode').text();
+}
+
 </script>
 </head>
 <body>