Получить положение приложения Flex на веб-странице?

StackOverflow https://stackoverflow.com/questions/89188

  •  01-07-2019
  •  | 
  •  

Вопрос

Можно ли получить координаты x,y приложения Flex на HTML-странице?Я знаю, что вы можете использовать ExternalInterface.ObjecID для получения «атрибута id тега объекта в Internet Explorer или атрибута имени тега внедрения в Netscape», но я не могу пройти этот шаг.Кажется, что должна быть возможность получить дескриптор этого объекта внедрения.Какие-либо предложения?

Спасибо.

Это было полезно?

Решение

Я думаю, что проще всего включить в HTML-страницу какую-нибудь библиотеку JavaScript, скажем, jQuery, и использовать ее функции для определения положения и размера узлов DOM.Я бы сделал это примерно так:

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

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

trace(offset.left, offset.top);

Обратите внимание, что это код ActionScript, но он запускает код JavaScript через ExternalInterface.Он использует jQuery и, в частности, его offset метод, который возвращает левое и верхнее смещение узла DOM.

Вы могли бы обойтись без jQuery, если бы посмотрели, как offset метод реализован и включает этот код вместо вызова jQuery.Таким образом, вам не нужно будет загружать jQuery в HTML, и приложение Flex будет автономным.Причина, по которой я предлагаю использовать такую ​​библиотеку, как jQuery, заключается в том, что браузеры делают эти вещи по-разному.Я не уверен, что вычисление смещений сильно отличается от браузера к браузеру, но не помешает изолироваться от различий браузера.

JavaScript в моем примере представляет собой анонимную функцию, поэтому идентификатор тега внедрения/объекта можно передать в нее в качестве параметра для ExternalInterface.call, но вы можете просто использовать конкатенацию строк, если хотите:

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

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

Это тоже сработает, просто я думаю, что первая версия более элегантна.

Другие советы

Если вы пытаетесь просто измерить, где оно находится на странице в качестве внешнего пользователя, единственное, что мне приходит в голову, — это расширение Firefox под названием MeasureIt. Я время от времени использовал его для различных измерений на веб-страницах.

Пытаетесь ли вы сделать это программно изнутри самой встроенной страницы, и если да, то на каком языке?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top