Größe dynamisch die pixi-Bühne und seinen Inhalt im Fenster ändern der Größe und laden-Fenster
Ich versuche, die Größe dynamisch die pixi-Bühne (Leinwand und Inhalt) auf Fenster Größe ändern. Und die haben es auch zunächst laden Sie sich die Größe des browser-Fensters ohne änderung-Verhältnis.
Ich bin mit dem folgenden, um die anfängliche Größe grundsätzlich zu window.innerWidth
& window.innerHeight
- aber Sie tut etwas merkwürdig, ist es be-auf eine kleinere Größe (aber nicht die Größe des canvas angegeben im html-Code), dann ist es erweitert um das Fenster zu passen.
var w;
var h;
window.onload = function() {
var w = window.innerWidth;
var h = window.innerHeight;
//this part resizes the canvas but keeps ratio the same
renderer.view.style.width = w + "px";
renderer.view.style.height = h + "px"
// init();
};
Hier mein onresize-Funktion - es ist Größe der Leinwand, nicht aber den Inhalt. Ich dachte da, dass es die Aktualisierung der renderer.view
, es würde die Größe der Inhalte, aber es ' s nicht so - wie kann ich die Größe der Inhalte der stage/renderer.view
Inhalt?
window.onresize = function (event){
var w = window.innerWidth;
var h = window.innerHeight;
//this part resizes the canvas but keeps ratio the same
renderer.view.style.width = w + "px";
renderer.view.style.height = h + "px";
//this part adjusts the ratio:
renderer.resize(w,h);
}
//create an new instance of a pixi stage
var stage = new PIXI.Stage(0xff00ff);
var renderer = PIXI.autoDetectRenderer(window.innerWidth, window.innerHeight);
//add the renderer view element to the DOM
var mypixiStage = document.body.appendChild(renderer.view);
- Welchem Verhältnis wollen Sie zu halten? Oder, was ist die Standard-Leinwand Größe?
- Das ist eine wirklich gute Frage 😀 jetzt ist es 1920x1080, also 16 x 9. Aber möglicherweise später ändern. Ich bearbeitete die oben genannten fyi.
- Hast meine Antwort überhaupt helfen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden Sie wollen, um das setup eine Größe und Verhältnis für das resize-Ereignis-Funktion zu verweisen. Dann müssen Sie eine resize-Funktion prüft die Größe des Fensters, um das Seitenverhältnis beizubehalten, wenn in der Größe verändert. Ich bin auch mit der resize-Funktion manuell zu starten, für die erste Seite zu laden.
Beachten Sie auch, dass ich nicht laufen
renderer.resize
. Ich bin nur die Größe des Zeichenbereichs.Hier ist ein Turnschuh, für Sie zum ansehen: http://jsfiddle.net/2wjw043f/
Hier ist der fiddle-code:
Ab PixiJS 5.0 können Sie einfach die resizeTo Eigentum Ihrer Anwendung:
Dokumentation: http://pixijs.download/release/docs/PIXI.Application.html#Application
Wurde ich mit Pixi.js für ein paar Wochen und arbeitete an das gleiche problem der Größenänderung des canvas. Diese Klasse erstellt ein sprite-Objekt hat eine Methode "applyResize" das macht die meiste Arbeit. Die Größe der Leinwand im hintergrund wird die gleiche wie die Eltern "domElement" in den Konstruktor. Sie müssen hinzufügen 'resize' - event-listener, um das sprite nach dem initialisieren. Oder Sie können etwas anderes tun, um es zu verbessern.
JS:
CSS:
HTML: