質問

HTML ページ内の Flex アプリの X、Y 座標を取得することはできますか?ExternalInterface.ObjecID を使用して「Internet Explorer の object タグの id 属性、または Netscape の embed タグの name 属性」を取得できることは知っていますが、そのステップを越えることができないようです。その埋め込みオブジェクトのハンドルを取得できるはずだと思われます。助言がありますか?

ありがとう。

役に立ちましたか?

解決

最も簡単な方法は、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 への呼び出しの代わりにそのコードが組み込まれます。そうすれば、HTML に jQuery をロードする必要がなくなり、Flex アプリが自己完結型になります。jQuery のようなライブラリを使用することをお勧めする理由は、ブラウザーによってこれらの処理が異なるためです。オフセットの計算がブラウザごとに大きく異なるかどうかはわかりませんが、ブラウザの違いから切り離されても問題はありません。

この例の JavaScript は匿名関数であるため、embed/object タグの ID をパラメータとして渡すことができます。 ExternalInterface.call, ただし、必要に応じて文字列連結を使用することもできます。

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

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

それもうまくいきますが、最初のバージョンの方がエレガントだと思います。

他のヒント

外部ユーザーとしてページ内のどこにあるかを測定しようとしている場合、頭に浮かぶのは MeasureIt と呼ばれる Firefox 拡張機能だけです。Web ページ上のさまざまな測定に時々使用しています。

これを埋め込みページ自体内からプログラム的に実行しようとしていますか? 実行する場合はどの言語ですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top