Pregunta

¿Es posible obtener las coordenadas x,y de una aplicación Flex dentro de una página HTML?Sé que puedes usar ExternalInterface.ObjecID para obtener el "atributo de identificación de la etiqueta de objeto en Internet Explorer, o el atributo de nombre de la etiqueta de inserción en Netscape", pero parece que no puedo pasar de ese paso.Parece que debería ser posible controlar ese objeto incrustado.¿Alguna sugerencia?

Gracias.

¿Fue útil?

Solución

Creo que lo más fácil es incluir algún tipo de biblioteca JavaScript en la página HTML, digamos jQuery, y usar sus funciones para determinar la posición y el tamaño de los nodos DOM.Yo lo haría más o menos así:

var jsCode : String = "function( id ) { return $('#' + id).offset(); }";

var offset : Object = ExternalInterface.call(jsCode, ExternalObject.objectID);

trace(offset.left, offset.top);

Tenga en cuenta que se trata de código ActionScript, pero ejecuta código JavaScript a través de ExternalInterface.Utiliza jQuery y en particular su offset Método que devuelve el desplazamiento izquierdo y superior de un nodo DOM.

Podrías prescindir de jQuery si observaras cómo offset El método se implementa e incluye ese código en lugar de la llamada a jQuery.De esa manera, no necesitaría cargar jQuery en HTML y la aplicación Flex sería autónoma.La razón por la que sugiero usar una biblioteca como jQuery es que los navegadores hacen estas cosas de manera diferente.No estoy seguro de si el cálculo de las compensaciones es muy diferente de un navegador a otro, pero no está de más estar aislado de las diferencias de los navegadores.

El JavaScript en mi ejemplo es una función anónima, por lo que el ID de la etiqueta de inserción/objeto se le puede pasar como parámetro para ExternalInterface.call, pero puedes usar la concatenación de cadenas si quieres:

var jsCode : String = "$('#' +" + ExternalInterface.objectID + ").offset()";

var offset : Object = ExternalInterface.call(jsCode);

Eso también funcionaría, sólo que creo que la primera versión es más elegante.

Otros consejos

Si está intentando simplemente medir dónde se encuentra dentro de una página como usuario externo, lo único que se me viene a la mente es una extensión de Firefox llamada MeasureIt. La he usado ocasionalmente para varias mediciones en páginas web.

¿Está intentando hacer esto mediante programación desde la propia página incrustada y, de ser así, en qué idioma?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top