首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Flex应用程序在网页上的位置?

获取Flex应用程序在网页上的位置?
EN

Stack Overflow用户
提问于 2008-09-18 01:27:20
回答 2查看 784关注 0票数 0

可以在HTML页面中获取Flex应用程序的x,y坐标吗?我知道您可以使用ExternalInterface.ObjecID获取“Internet Explorer中object标记的id属性,或Netscape中embed标记的name属性”,但我似乎无法完成这一步。似乎可以获得嵌入对象句柄。有什么建议吗?

谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2008-09-18 11:21:17

我认为最简单的做法是在HTML页面上包含某种JavaScript库,比如jQuery,并使用它的函数来确定DOM节点的位置和大小。我或多或少会这样做:

代码语言:javascript
复制
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,特别是返回DOM节点的左偏移量和上偏移量的offset方法。

如果您查看了jQuery方法是如何实现的,并且包含了该代码来代替对jQuery的调用,那么您可以不使用offset。这样你就不需要在超文本标记语言中加载jQuery,而且Flex将是自包含的。我建议使用像jQuery这样的库的原因是浏览器做这些事情的方式不同。我不确定不同的浏览器计算偏移量是否有很大的不同,但不受浏览器差异的影响也不会有什么坏处。

我的示例中的JavaScript是一个匿名函数,这样就可以将embed/object标记的ID作为参数传递给ExternalInterface.call,但如果需要,也可以使用字符串连接:

代码语言:javascript
复制
var jsCode : String = "$('#' +" + ExternalInterface.objectID + ").offset()";

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

这也是可行的,我只是觉得第一个版本更优雅。

票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/89188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档