问题标签 [hittest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
silverlight - 有没有办法对禁用的控件进行测试?
我试图检测鼠标光标下的控件,无论控件是否启用。
VisualTreeHelper.FindElementsInHostCoordinates
忽略其IsEnabled
属性设置为的控件false
。有没有办法改变这种行为,或者有什么其他方法可以在特定的屏幕位置找到控件?
谢谢。
flash - 动态放置的 MovieClip 实例上的 hitTestObject
尝试对动态放置在舞台上的实例执行 hitTestObject。
收到错误:
动作脚本:
flash - 如何在舞台上动态放置的多个实例上使用 hitTestObject?(AS3)
通过库中的链接放置多个 MovieClip 实例,有人知道如何在这些实例上应用 hitTestObject 吗?
我正在 AS3 中创建一个吃豆人风格的 Flash 游戏。如果有人知道可能有用的好教程,请随时告诉我。
silverlight - 如何在 Silverlight TextBlock 中点击测试单个字符
这是一个稍微抽象的问题,对此我深表歉意。我不一定要寻找经过测试的特定解决方案,而是可以尝试一些建议以找到最有效的解决方案。欢迎所有建议 - 越多样化和创造性越好。
这是问题所在:
我有一个TextBlock
包含一段环绕文本的 Silverlight。它可能包含应用了多种格式的多次运行,包括多种字体大小。它可以左对齐、右对齐、居中对齐或对齐,并且可能包含使用从右到左文本流的运行。我需要能够检测到鼠标指针下的字符。在 WPF 中,我可以使用该方法轻松解决此问题GetPositionFromPoint
,但由于 Silverlight 中不存在此方法,因此我需要一个创造性的解决方法。
我尝试过的一种方法取得了相当大的成功,是将文本分解成单个单词并TextBlock
为每个单词创建一个。通过将它们呈现在 a 中,WrapPanel
我可以识别每个单词的起始位置,从而缩小命中测试区域。找到实际的目标字符就是逐个字符地构建目标单词,直到它的宽度满足鼠标位置。
虽然我的实验技术有效,但它有两个缺点。首先是性能,因为TextBlock
在WrapPanel
. 第二个问题是我的换行算法(粗略地基于空格和连字符)可能TextBlock
与 UI 中使用的实际使用的算法不完全匹配。刚刚阅读了Unicode Line Breaking Algorithm,我意识到这本身就是一个完整的主题。我不想冒在某些段落内容条件下破坏设计的风险
理想情况下,我希望找到一种可以让我直接针对 main 进行测量的技术TextBlock
,但我欢迎任何创新的建议,无论它们看起来多么奇怪。
非常感谢,蒂姆
wpf - WPF UserControl HitTest
I have the following user control: a dot and its name:
This is cool.
Now, I have a panel, in witch I need to recuperate my StopPoints that I hit with the Mouse:
So, as you can see, the problem that the HitTest never identifies an UserControl(StopPoint) as it is, but rather its components(TextBlock, Ellipse or even Border).
As I associate the business object to the StopPoint element, I need to obtain it when MouseHitting, and not its composing elements.
Is there a way to do it?
EDIT:
Using filter (now, it does not enter at all in the HitTestCallback):
wpf - IsMouseOver 在 ContextMenu 或验证错误时返回 False?
我有一个控件,当 IsMouseOver 使用触发器设置为 true 时,它会扩展。在该控件中,有一些文本框具有一些基本验证。我的问题是,当发生验证错误并且用户将鼠标悬停在文本框周围的红色边框上时(几乎保证在用户将鼠标移动到文本框的中心以更改值时发生), IsMouseOver 设置为 false 并且控件关闭.
文本框的验证错误:
触发以显示控制:
更新: 当我右键单击文本框并打开上下文菜单时,IsMouseOver 也设置为 False
iphone - CALayer -hitTest:不尊重 containsPoint:重载
再次返回并使用我之前发布的相同功能提出不同的问题:
我有一个炸弹,用户将其拖到敌人的上方,使其直接显示在 AIEnemyUnit 上方。对于这个炸弹,我实现了 CALayer-containsPoint:
在拖动过程中返回 NO 以允许 -hitTest: 穿过层。基本上,只要我只使用 CGImageRef 上下文,这种类型的命中测试就可以很好地处理这些“传递”层。然而,一旦我开始为炸弹添加额外效果的子层,我就 -hitTest:
立即崩溃了。很明显,新层正在捕获-hitTest:
. 我尝试通过重载-containsPoint:
这些层来实现相同的技术,但它仍然返回炸弹的通用 CALayer 子类,而不是通过。
有没有更好的办法?
actionscript-3 - BitmapData.draw() 矩阵问题
我遇到了一个问题,即 BitmapData.draw() 方法不能准确地从使用透明度的 .png 中减去图像数据。
我整理了一个显示这种行为的测试文件,它位于: http ://www.filedropper.com/shield_1
简而言之,一个精灵从屏幕顶部掉落,当它与屏幕底部的精灵相交时,掉落的精灵会取出底部的一部分精灵。我已经完成了所有这些工作,除了当我在精灵与底部精灵相交后重置精灵的 x 和 y 位置并再次与底部精灵相交时,它不会从精灵中取出相同大小的块底部。
如果我解释得不够好,我很抱歉。如果您花一点时间看一下我发布的文件,那将是有意义的。
下面的代码需要库中的两个 png 文件,其 Linkage 值为 ShieldBase 和 SnowBall。
我认为问题在于 hitTest 和/或 BitmapData.draw() 没有按预期工作。
非常感谢,
德文
silverlight - 在 Silverlight 中的图像中只有非透明像素命中可测试的最佳方法是什么?
根据 Silverlight 中的 msdn,图像可以在其图像/媒体显示区域(基本上是其高度和宽度)上进行命中测试。图像文件中的透明/完整 Alpha 像素仍然可以命中测试。我现在的问题是,在 Silverlight 中的图像中只有非透明像素命中可测试的最佳方法是什么?
iphone - hitTest 返回错误的 UIView
我有一个视图层次结构,其中包含滚动视图上的较小视图。每个视图都可以有子视图,例如按钮等。
出于某种原因,视图上的按钮没有被点击;进一步探索表明,当滚动视图接收到 touchBegan 事件时,按钮没有。调用 hitTest:event: 消息显示按钮未返回,即使它在限制范围内。
我已经包含了一个日志输出,描述了滚动视图上的触摸位置、从 hitTest 返回的项目、如果我调用 locationInView 时的触摸位置:使用预期项目,以及预期项目的层次结构(打印帧)。从这个输出我可以推断该按钮应该被调用......
谁能解释一下?我错过了什么吗?
更新:除了UIWindow和VCViewsContainerView 之外,所有视图都是使用initWithFrame:或在按钮的情况下buttonWithType:以编程方式创建的。VCViewContainer 使用CGRectZero初始化,当UIImageView创建时,它的框架设置为图像的大小 + 底部标签的额外空间。
更新 2:当使用相同位置调用[self.layer hitTest:location]时,我得到了正确视图的图层!这里发生了什么...?