gpt4 book ai didi

openlaszlo - 如何在 openlaszlo 中获取基于坐标的 View ?

转载 作者:行者123 更新时间:2023-12-03 12:21:09 25 4
gpt4 key购买 nike

在 JavaScript 中,我们有 document.elementfrompoint 来获取基于坐标的元素。Openlaszlo 中是否有类似的东西来获取基于坐标的 View ?

最佳答案

OpenLaszlo 不直接支持该功能,但对于基于 ActionScript 3 的运行时,您可以使用 flash.display.DisplayObjectContainer#getObjectsUnderPoint()方法。在 DHTML 运行时,您可以使用 document.elementFromPoint(x, y) , 和 based on Quirksmode所有现代浏览器都应该支持它。

这是一个实现 canvas.elementFromPoint() 方法的示例程序:

<canvas debug="true">

<passthrough when="$as3">
import flash.geom.Point;
</passthrough>

<view id="background" width="100%" height="100%" bgcolor="#eeeeee" clickable="true"/>

<view id="red" x="200" y="100" width="200" height="200" bgcolor="#ff0000" opacity="0.3" clickable="true" />
<view id="green" x="150" y="200" width="200" height="200" bgcolor="#00ff00" opacity="0.3" clickable="true"/>
<view id="blue" x="250" y="200" width="200" height="200" bgcolor="#0000ff" opacity="0.3" clickable="true"/>

<handler name="onclick" reference="lz.GlobalMouse">
canvas.elementFromPoint();
</handler>

<method name="elementFromPoint"><![CDATA[
var mouseX = canvas.getMouse('x'),
mouseY = canvas.getMouse('y'),
objects = null, // array of objects at mouse pointer in SWF runtime
element = null; // The element we are looking for
Debug.info( 'mouse position: x=' + mouseX + ' / mouseY=' + mouseY );
if ($as3) {
// in SWF runtime, use the DisplayObjectContainer.getObjectsUnderPoint() method
objects = canvas.getDisplayObject().getObjectsUnderPoint(new Point(mouseX, mouseY));
element = objects[objects.length-1].owner;
} else {
// in DHTML, we can use elementFromPoint, and need to retrieve the owner view of the div
element = document.elementFromPoint(mouseX, mouseY).owner.owner;
}
Debug.info('View under mousecursor:', element);
return element;
]]></method>

</canvas>

有 4 个 View ,一个缩放到 100% x 100% 的背景 View 。以及三种颜色 View :红色、绿色和蓝色 - 蓝色 View 位于顶部。单击 View 时,返回正确的 View 对象。

enter image description here

该代码已在 Chrome 22.0、Firefox 16.0.1 和 Opera 12.02 的 DHTML 运行时中进行了测试。 Flash 应该适用于所有浏览器,我没有在 IE 上测试过。

关于openlaszlo - 如何在 openlaszlo 中获取基于坐标的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13066052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com