簡體   English   中英

獲取Flex應用程序在網頁上的位置?

[英]Get Flex app's position on a web page?

是否可以在HTML頁面中獲取Flex應用程序的x,y坐標? 我知道您可以使用ExternalInterface.ObjecID來獲取“ Internet Explorer中對象標簽的id屬性,或Netscape中embed標簽的名稱屬性”,但我似乎無法超越這一步。 似乎應該可以對該嵌入對象進行處理。 有什么建議么?

謝謝。

我認為最簡單的方法是在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代碼,但是它通過ExternalInterface運行JavaScript代碼。 它使用jQuery,尤其是其offset方法,該方法返回DOM節點的左偏移量和頂部偏移量。

如果您看一下offset方法的實現方式並包括該代碼來代替對jQuery的調用,則可以不用jQuery。 這樣,您將不需要在HTML中加載jQuery,而Flex應用程序將是獨立的。 我之所以建議使用類似jQuery的庫,是因為瀏覽器的處理方式有所不同。 我不確定瀏覽器之間的偏移量計算是否有很大不同,但是不受瀏覽器差異的影響也沒有什么壞處。

在我的示例中,JavaScript是一個匿名函數,因此embed / object標記的ID可以作為ExternalInterface.call的參數傳遞給它,但是如果需要,您可以只使用字符串連接:

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

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

那也行得通,我只是認為第一個版本更優雅。

如果您只是想衡量外部用戶在頁面中的位置,那么我想到的唯一一個是Firefox擴展,名為MeasureIt,我偶爾會用它來進行網頁上的各種測量。

您是否要從嵌入式頁面本身內部以編程方式執行此操作,如果是,則選擇哪種語言?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM