跳转到主要内容元素的搜索区域是由在 Where to search 部分中设置的元素属性以及在 Search Conditions 部分中设置的条件共同形成的。在应用这些属性和条件之前,搜索区域与页面的矩形区域一致。首先,程序将元素属性应用到该区域。接着,程序应用在 Search Conditions 部分中设置的附加限制。
在 Search Conditions 部分中可以设置以下类型的约束:
- 搜索区域可以被限制为一个矩形(
Rect 变量)、一个区域(即一个连续的矩形数组——Region 变量),或者一个在一般情况下可以是不连续的矩形数组(RectArray 变量)。此类约束通过 RestrictSearchArea 函数并指定相应类型的参数来设置。任何返回所需类型值的表达式都可以作为参数指定。
- 搜索区域可以被限制为位于某一点左侧、右侧、上方或下方的半平面。此类约束通过
Leftof、Rightof、Above 和 Below 函数来设置。
- 有时您可能希望为元素边界设置约束。例如,可能事先已知某个元素的左边界始终位于图像的左侧部分,而右边界则可以无限向右延伸。FlexiLayout 语言允许您在计算搜索区域阶段设置此类约束,从而缩小元素可能的假设范围。此类约束通过
LeftBound、RightBound、topBound 和 BottomBound 函数以及 > 和 < 运算符来设置。LeftBound 和 RightBound 函数用于访问搜索区域的左边界和右边界,topBound 和 BottomBound 函数分别用于访问上边界和下边界。
- 您可以通过从搜索区域中排除一个矩形、一个矩形数组、某个假设等来设置搜索约束。这可以通过
Exclude、ExcludeRect 和 ExcludeSet 函数来完成。
您可以在 Search Conditions 部分中指定任意数量的上述类型搜索约束。每个约束都会在图像上生成一个区域。由这些约束创建的所有区域都将进行求交运算。
此外,为元素计算出的搜索区域还将与该元素所属 Group 元素的搜索区域求交。