2016-04-23 22 views
1

Ich übertrage ein großes FLA AS3-Projekt in Canvas/JS. Ich habe eine große externe Ordnerstruktur von AS-Dateien und viele Bibliotheksobjekte, die Klassen zugeordnet sind.Verwenden von Adobe Animate CC im HTML5-Canvas-Modus mit externen JavaScript-Dateien

Ich habe FLA in einen Canvas-Modus konvertiert, aber ich kann keine Möglichkeit finden, JS-Dateien den Objekten zuzuordnen. Ich habe Online-Beispiele über JS in Frame-Skripten gesehen, aber ich hoffe wirklich, einen Weg zu finden, um es mit externen Dateien und Bibliotheksobjekte Association zu tun.

Ich würde jede Richtung oder ein Beispiel dafür, wie es getan werden kann, schätzen.

Danke

Antwort

0

Ich habe einige Zeit damit verbracht und schaffte es, ein besseres Verständnis zu bekommen, wie es funktioniert und erstellt ein einfaches Beispiel für AS-Dateien mit externem Flash Actionscript-Projekt konvertieren und objektorientierter Struktur in Animate CC Leinwand und Javascript-Dateien projizieren mit ähnlicher Dateistruktur.

Sie können es sehen bei https://github.com/xims/X-simple-flahtml

+1

Ich verstehe nicht, wie es funktioniert, aber es funktioniert. Ein Problem, das ich denke, ist, dass Sie das generierte HTML ändern müssen, um Ihre Includes und das js-Snippet hinzuzufügen. Wie gehen Sie jedes Mal vor, wenn Sie das von Animate neu kompilieren? Verwenden Sie ein Werkzeug, um das zu tun? – jck

3

Was ich meine JS Dienstprogramme alle auf die html ist das Hinzufügen von on-the-fly von Animate mit appenChild wie folgt aus:

Bildskript:

function loadScript(url) { 
    var body = document.getElementsByTagName('body')[0]; 
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = url; 
    body.appendChild(script); 
} 

loadScript('assets/app/myUtilities.js'); 
loadScript('assets/libs/coolTool.js'); 
loadScript('etc..'); 

s = this; //to have access to the stage 

und Zugriff auf die Bühne von der externen JS wie folgt aus:

s.my_movieclip.addEventListener("click", fl_MouseClickHandler.bind(s)); 

function fl_MouseClickHandler() { 
    console.log('I want banana!'); 
} 

Was ich gesehen habe ist, dass es leider nicht möglich scheint, Objekte dynamisch aus der Bibliothek in Animate mit Canvas zu instanziieren, ich denke, dass die beste Lösung ist, Ihre Ansichten auf der Timeline vorzubereiten.

Auf der anderen Seite, JS bieten viele Funktionen (zum Beispiel Aufruf von Bootstrap Dialog Modals aus Ihrem Code).

+0

Zusätzlich, wenn Sie mehrere JS mit Abhängigkeiten laden müssen (wie für jQuery), empfehle ich Ihnen, nur eine Datei 'launcher.js' zu laden, die [LABjs] (http://labjs.com/documentation.php) und enthält um alle Ihre Libraries am Ende der Datei mit $ LAB – jck

+0

anhängen Hallo, vielen Dank für Ihre Eingabe. Allerdings muss ich Ihnen sagen, dass es tatsächlich möglich ist, Objekte in der Bibliothek dynamisch in Animate zu instanziieren: 'var myClip = new lib.MyClipsNameInTheLibrary();' – Danyright

+0

Danke @Danright. Es scheint nur zu funktionieren, wenn das Objekt bereits auf der Bühne ist, und wie wird das neu erstellte Objekt dann auf der Bühne gezeigt? – jck

Verwandte Themen