2017-03-16 1 views
0

Ich möchte Popup zum Spiel hinzufügen. Ich benutze phaser und gefunden modal.js zum Hinzufügen von Popup in Phaser es scheint nützlich zu sein, aber wenn ich versuche, dies zu addieren, bekomme ich einen Fehler "Uncaught TypeError: Kann die Eigenschaft 'modal1' von undefined nicht setzen". Ich denke, dass ich diesen Fehler nur aufgrund meiner Codierungsstruktur bekomme. Hier ist mein CodeHinzufügen von Popup zum Phaser-Spiel

var reg={}; 
createModals: function(){ 
    reg.modal.createModal({ 
     type: "modal1", 
     includeBackground: true, 
     modalCloseOnInput: true, 
     itemsArr: [{ 
      type: "graphics", 
      graphicColor: "0xffffff", 
      graphicWidth: 300, 
      graphicHeight: 300, 
      graphicRadius: 40 
     }, { 
      type: "text", 
      content: "The white behind me\nis a [Phaser.Graphic]", 
      fontFamily: "Luckiest Guy", 
      fontSize: 22, 
      color: "0x1e1e1e", 
      offsetY: -50 
     }, ] 
    }); 

    }, 

    showModal1: function(){ 
    reg.modal.showModal("modal1"); 
    } 

kann jede Hilfe bei diesem ...

Antwort

1

Hier ist ein vollständiges Beispiel.

var reg = {}; 
 

 
function createModals() { 
 
    reg.modal.createModal({ 
 
      type:"modal1", 
 
      includeBackground: true, 
 
      modalCloseOnInput: true, 
 
      itemsArr: [ 
 
       { 
 
      type: "graphics", 
 
      graphicColor: "0xffffff", 
 
      graphicWidth: 300, 
 
      graphicHeight: 300, 
 
      graphicRadius: 40 
 
     }, { 
 
      type: "text", 
 
      content: "The white behind me\nis a [Phaser.Graphic]", 
 
      fontFamily: "Luckiest Guy", 
 
      fontSize: 22, 
 
      color: "0x1e1e1e", 
 
      offsetY: -50 
 
     } 
 
      ] 
 
     }); 
 
} 
 

 
function showModal1(){ 
 
    reg.modal.showModal("modal1"); 
 
} 
 

 
var GameState = function(game) { 
 
}; 
 

 
GameState.prototype.create = function() { 
 
    reg.modal = new gameModal(game); 
 
    createModals(); 
 
    var m1 = this.game.add.button(30, 50, "m1", showModal1); 
 
}; 
 

 
var game = new Phaser.Game(750, 380, Phaser.CANVAS, 'game'); 
 
game.state.add('game', GameState, true);
<script src="http://netgfx.com/trunk/games/phaser_modals/phaser.min.js"></script> 
 
<script src="http://netgfx.com/trunk/games/phaser_modals/modal.js"></script> 
 
<div style="font-family:'Luckiest Guy',cursive;visibility:hidden;opacity:0;position:fixed;">&nbsp;</div>

+0

Ich bin ein Fehler „Nicht abgefangene Typeerror bekommen: Kann nicht gesetzt Eigenschaft 'modals' undefinierter bei neuen gameModal (modal.js: 8) bei patternsRatio.game1.create (game1.js: 97) bei Phaser.StateManager .loadComplete (phaser.js: 30083) bei Phaser.Loader.finishedLoading (phaser.js: 74233) bei Phaser.Loader.processLoadQueue (phaser.js: 74190) bei Phaser.Loader.asyncComplete (phaser.js: 74263) bei Phaser.Loader.fileComplete (phaser.js: 75120) bei HTMLImageElement.file.data.onload (phaser.js: 74522) " –

0

ich der Schöpfer dieser lib bin, scheint es, dass Sie nicht auf den Konstruktor das richtige Spiel Objekt vorbei.

reg.modal = new gameModal(game); 

, wenn Ihr Spiel Objekt nicht aufgerufen game Sie brauchen das richtige Spiel-Objekt übergeben.

Normalerweise kommt das von dieser Linie

var game = new Phaser.Game(1024, 768, Phaser.AUTO, 'game', null, true); 

Damit game eine globale Variable

@Jatin patil korrekt ist in seiner Antwort.

Verwandte Themen