[gelöst] Flash .js (canvas) einbinden
Eingetragen von stixer2 (113)
am 08.06.2015 - 17:39 Uhr in
am 08.06.2015 - 17:39 Uhr in
Hi.
Ich baue gerade eine interaktive Karte mit Flash über html5 canvas. Ich bekomme dann am Ende eine .js- und eine html-Datei.
Unsicher bin ich mir, wie ich das am besten in eine Drupalseite einbaue. Ich muss ja die scripte ins Template-head schreiben, würde das aber natürlich nicht auf jeder Seite brauchen.
Hat jemand einen Tipp?
Besten Dank und Grüße!
Das wäre die html-Datei, die Flash neben der .js generiert:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>map</title>
<script src="http://code.createjs.com/easeljs-0.7.1.min.js"></script>
<script src="http://code.createjs.com/tweenjs-0.5.1.min.js"></script>
<script src="http://code.createjs.com/movieclip-0.7.1.min.js"></script>
<script src="map.js"></script>
<script>
var canvas, stage, exportRoot;
function init() {
canvas = document.getElementById("canvas");
exportRoot = new lib.Unbenannt8();
stage = new createjs.Stage(canvas);
stage.addChild(exportRoot);
stage.update();
stage.enableMouseOver();
createjs.Ticker.setFPS(lib.properties.fps);
createjs.Ticker.addEventListener("tick", stage);
}
</script>
</head>
<body onload="init();" style="background-color:#D4D4D4">
<canvas id="canvas" width="632" height="854" style="background-color:#FFFFFF"></canvas>
</body>
</html>
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo, Du kannst die Scripte
am 09.06.2015 - 10:31 Uhr
Hallo,
Du kannst die Scripte in einem Template nur für die Seite laden welche Du dafür benötigst.
HTML Template
html--node--id.tpl.php
Oder Page Template
page--[front|internal/path].tpl.php
Schau hier https://www.drupal.org/node/1089656
Vergiss nicht dass Du den Theme Cache leeren musst damit die TEmplates aufgenommen werden.
MfG
Robert
Vielen Dank! So klappt es.
am 10.06.2015 - 09:53 Uhr
Vielen Dank! So klappt es.
Bekomme es leider nicht hin
am 22.12.2016 - 12:19 Uhr
Hallo an alle,
ich habe diesen Thread gefunden, weil ich exakt das selbe Problem habe. Leider funktioniert es bei mir nicht und ich weiß nicht, an was es liegt...
Habe meine Scripts (im Beispiel oben ab dem ersten
<script...
) bis zum abschließenden</script>
in den head-Bereich meiner html.tpl.php kopiert.Dann habe ich in meiner Node in einem Feld (Full HTML) den Bereich zwischen
<canvas> und </canvas>
kopiert.Nun bekomme ich zwar den Bereich angezeigt, aber die Animation wird nicht dargestellt.
Meine Ausgabedatei muss richtig sein, weil ich diese in jedem Browser öffnen und die Animation sehen kann.
Liegt es vielleicht daran, dass ich es auf einem lokalen XAMPP laufen lasse?
Vielen Dank schonmal
naddl
Du hast vielleicht übersehen,
am 22.12.2016 - 12:52 Uhr
Du hast vielleicht übersehen, daß in dem angeführten Beispiel beim Body noch ein
onload="init();"
vorhanden ist und das ist entscheidend. Wie stellst Du denn sicher, daß die init()-Funktion aufgerufen wird.Das habe ich übersehen, funktioniert aber trotzdem nicht
am 22.12.2016 - 14:25 Uhr
Hallo Werner,
super, vielen Dank für Deine Anregung. Das habe ich wohl übersehen. Nun habe ich den onload in den body-Tag eingefügt in der html.tpl.php
aber trotzdem wird mir die Animation nicht angezeigt. Wie oben beschrieben, habe ich die Caches geleert...
LG Naddl
Hast Du mal über die Konsole
am 22.12.2016 - 17:57 Uhr
Hast Du mal über die Konsole im Browser geprüft, ob es einen Fehler im JavaScript gibt. Sonst einen alert() in die Init-Funktion einbauen um zu prüfen ob die aufgerufen wird. Wenn nicht, ist das das Problem und man muß sehen, wodurch das kommt.
Puh
am 23.12.2016 - 09:48 Uhr
Hallo Werner,
arbeite zwar schon einige Zeit mit Drupal, aber mit JS kenne ich mich überhaupt nicht aus.
Ich weiß nicht, wie man ein JS auf Fehler prüft oder einen Alert einbaut...
LG Naddl