version

Übersicht: Blend4Web


Lernziel

Für die Interaktion zwischen dem Benutzer und den Objekten, die im Canvas dargestellt werden, ist die Verwendung von JavaScript (der Lingua Franka der Browsersprachen) unumgänglich. Schön wäre es, wenn man Python auch im Browser verwenden könnte. Es gibt solche Versuche und mit dem einfachsten Fall aus dem Handbuch soll diese Möglichkeit demonstriert werden. Der Einsatz für komplexere Aufgabenstellungen ist wohl noch nicht zu empfehlen :-(

Handlungsanweisungen

Aufgaben:
  • Erstelle einen Test-Ordner und kopiere b4w.min.js und brython.js
  • Speichere die hier vorgestellten Skripte im Test-Ordner.
  • Teste im Browser die Scripte.

Die erste Version ist direkt aus dem Handbuch entnommen und zeigt das Grundprinzip:

  • Einbinden von b4w.min.js
  • Definition einer Funktion (hier im head-Element)
  • und Aufruf einer Funktion (hier mit dem onload-Ereignis)

Das hat nun aber gar nichts mehr mit Python zu tun, was wirklich zu bedauern ist.

blend4web/brython-and-blend4web/hello-js.html (Source)

1
2
3
4
5
6
7
8
9
<!DOCTYPE html>
<html>
<head>
<script src="b4w.min.js"></script> <script>
function hello() {
var m_version = b4w.require("version");
document.body.innerHTML = "Hello, Blend4Web " + m_version.version() + "!"; }
</script> </head>
<body onload="hello()"></body> </html>

Warum nicht Python auch im Browser verwenden. Es gibt einige Ansätze. Auf das Brython-Projekte soll an dieser Stelle aufmerksam gemacht werden. Es handelt sich dabei um eine Python-Implementierung in JavaScript. Im Idealfall schreibt der Programmierer Python und Brython verwandelt die Sprachkonstrukte in JavaScript. Hier das Beispiel mit einem Mix aus JavaScript und Python. Wir wollen hoffen, das in naher Zukunft mehr möglich wird...

Hinweise:

Wie im Quelltext zu sehen ist, benötigt man die Javascript-Bibliothek brython.js und für den Python Block muss der Script-Typ auf text/python gesetzt werden.

Weiter Infos zu dem Projekt findet man auf der Brython-Website

blend4web/brython-and-blend4web/hello-py.html (Source)

<!DOCTYPE html>
<html>
<head>
  <script src="b4w.min.js"></script>
  <script src="brython.js"></script>
  <script type="text/javascript">
    var m_version = b4w.require("version");
  </script>

  <script type="text/python">

from browser import window
from browser import document as doc

def hello():
    version = window.m_version.version()
    #print(type(version))
    doc <= "Hello, Blend4Web %s,%s!" % (version[0], version[1])

hello()
    </script>
</head>
<body onload="brython(1)">
</body>
</html>

Kommentare