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.

È stato utile?

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?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top