2014-06-26 13 views
8

Vorrei chiamare le funzioni paper.js dai pulsanti HTML nella mia pagina ma credo che le funzioni paper.js esistano nel loro ambito. I paper.js documenti menzionano l'interoperabilità che suona come il diritto diretto da poi mi prendere per una pagina che dice "coming soon":Interoperabilità Paper.js

http://paperjs.org/tutorials/getting-started/paperscript-interoperability/

Qualcuno sa come posso chiamare una funzione creata all'interno di un documento. js script dalla mia pagina HTML?

risposta

3

Ci scusiamo per il tutorial mancante. Investirò davvero un po 'di tempo per scriverlo finalmente.

Ho risposto a questa domanda sulla mailing list dello scorso anno: https://groups.google.com/d/msg/paperjs/C6F0XFlplqM/_67AMqCR_nAJ

mirino PaperScript eseguito all'interno della portata globale, e avere accesso a tutti gli elementi della portata globale. I normali JavaScript in esecuzione nell'ambito globale (= finestra) non vedranno questi PaperScope e non avranno accesso alle loro variabili.

Esiste una soluzione semplice per lo scambio di informazioni tra i due: Basta dichiarare una struttura globale che si usa per scambiare azioni avanti e indietro, ad es.

window.globals = { 
    someValue: 10, 
    someFunction: function() { alert(globals.someValue); } 
}; 

Nella tua PaperScript, è quindi possibile accedere a questo semplicemente attraverso 'globali', dal momento che è nel campo di applicazione della finestra:

globals.someValue = 20; 
globals.someFunction(); 

E allo stesso modo, è possibile usa questa struttura dal normale JavaScript.

+0

Grazie per è un commento ma è ancora un po 'vago rispetto al resto della documentazione. Qualche progresso nella pagina Interoperabilità? – Aron

1

Volevo solo aggiungere qualche chiarimento per chi si imbatte in questo.

Per PaperScript-to-JavaScript interoperabilità, effettuare le seguenti operazioni ...

Nel file HTML:

<button type="button" id="btn">Click Me!</button> 

Nel file JavaScript:

$(document).ready(init); 

function init(jQuery) { 
    $("#btn").click(window.globals.paperClicked); 
} 

// PaperScript Interop 
window.globals = { 
    paperClicked: function() {} 
} 

Nel file di PaperScript:

// JavaScript Interop 
globals.paperClicked = internalClicked; 

function internalClicked() { 
    alert('clicked!'); 
}