Ottieni la posizione dell'app Flex su una pagina web?
-
01-07-2019 - |
Domanda
È possibile ottenere le coordinate x,y di un'app Flex all'interno di una pagina HTML?So che puoi utilizzare ExternalInterface.ObjecID per ottenere "l'attributo id del tag oggetto in Internet Explorer o l'attributo name del tag embed in Netscape" ma non riesco a superare questo passaggio.Sembra che dovrebbe essere possibile ottenere un handle su quell'oggetto incorporato.Eventuali suggerimenti?
Grazie.
Soluzione
Penso che la cosa più semplice da fare sia includere una sorta di libreria JavaScript nella pagina HTML, ad esempio jQuery, e utilizzare le sue funzioni per determinare la posizione e la dimensione dei nodi DOM.Io farei più o meno così:
var jsCode : String = "function( id ) { return $('#' + id).offset(); }";
var offset : Object = ExternalInterface.call(jsCode, ExternalObject.objectID);
trace(offset.left, offset.top);
Tieni presente che questo è codice ActionScript, ma esegue codice JavaScript ExternalInterface
.Utilizza jQuery e in particolare its offset
metodo che restituisce l'offset sinistro e superiore di un nodo DOM.
Potresti fare a meno di jQuery se guardassi come funziona il file offset
Il metodo è implementato e include quel codice al posto della chiamata a jQuery.In questo modo non avresti bisogno di caricare jQuery nell'HTML e l'app Flex sarebbe autonoma.Il motivo per cui suggerisco di utilizzare una libreria come jQuery è che i browser fanno queste cose in modo diverso.Non sono sicuro che il calcolo degli offset sia molto diverso da browser a browser, ma non fa male essere isolati dalle differenze del browser.
Il JavaScript nel mio esempio è una funzione anonima in modo che l'ID del tag embed/object possa essere passato ad esso come parametro per ExternalInterface.call
, ma potresti semplicemente usare la concatenazione di stringhe se vuoi:
var jsCode : String = "$('#' +" + ExternalInterface.objectID + ").offset()";
var offset : Object = ExternalInterface.call(jsCode);
Funzionerebbe anche questo, penso solo che la prima versione sia più elegante.
Altri suggerimenti
Se stai cercando solo di misurare dove si trova all'interno di una pagina come utente esterno, l'unica cosa che mi viene in mente è un'estensione di Firefox chiamata MeasureIt. L'ho usata occasionalmente per varie misurazioni sulle pagine web.
Stai provando a farlo a livello di codice dall'interno della pagina incorporata stessa e, in caso affermativo, in quale lingua?