AABB
AlignmentBehavior
ArriveBehavior
AStar
BFS
BoundingSphere
BVH
BVHNode
Cell
CellSpacePartitioning
CohesionBehavior
CompositeGoal
ConvexHull
Corridor
CostTable
DFS
Dijkstra
Edge
EntityManager
EvadeBehavior
EventDispatcher
Behavior
FollowPathBehavior
FuzzyAND
FuzzyCompositeTerm
FuzzyFAIRLY
FuzzyModule
FuzzyOR
FuzzyRule
FuzzySet
FuzzyTerm
FuzzyVariable
FuzzyVERY
GameEntity
Goal
GoalEvaluator
Graph
GraphUtils
HalfEdge
HeuristicPolicyDijkstra
HeuristicPolicyEuclid
HeuristicPolicyEuclidSquared
HeuristicPolicyManhattan
InterposeBehavior
LeftSCurveFuzzySet
LeftShoulderFuzzySet
LineSegment
Logger
MathUtils
Matrix3
Matrix4
MemoryRecord
MemorySystem
MeshGeometry
MessageDispatcher
MovingEntity
NavEdge
NavMesh
NavMeshLoader
NavNode
Node
NormalDistFuzzySet
OBB
ObstacleAvoidanceBehavior
OffsetPursuitBehavior
OnPathBehavior
Path
Plane
Polygon
Polyhedron
PriorityQueue
PursuitBehavior
Quaternion
Ray
RectangleTriggerRegion
Regular
RightSCurveFuzzySet
RightShoulderFuzzySet
SAT
SeekBehavior
SeparationBehavior
SingletonFuzzySet
Smoother
SphericalTriggerRegion
State
StateMachine
SteeringBehavior
SteeringManager
Task
TaskQueue
Telegram
Think
Time
TriangularFuzzySet
Trigger
TriggerRegion
Vector3
Vehicle
Version
WanderBehavior

calculate

功能简介

calculate 是 ArriveBehavior 中的一个方法,用于计算特定属性的值,并更新目标节点的属性值。该方法根据不同的参数配置,进行不同的计算操作,可用于实现动画效果或更改节点样式等功能。

参数说明

target

  • 类型:HTMLElement或String
  • 描述:指定目标节点对象或其CSS选择器

property

  • 类型:String
  • 描述:指定要计算的属性(如width、height等)

value

  • 类型:Number或String
  • 描述:指定目标属性的计算结果,可以是数值或字符串。如果需要使用字符串,需要将字符串值用引号包裹。

duration

  • 类型:Number
  • 描述:指定持续时间,单位为毫秒。默认为0,即立即完成。

easing

  • 类型:String
  • 描述:指定缓动函数名称,用于实现动画效果。默认为"linear"。

onComplete

  • 类型:Function
  • 描述:指定计算完成后执行的回调函数。该函数接受一个参数,即被计算的属性值。

返回值

calculate 方法没有返回值。

示例代码

// 将class为box的节点的宽度变为100px,持续时间为500ms,使用ease-in-out缓动函数。
$('body').arrive('.box', function() {
  $(this).calculate('width', 100, {
    duration: 500,
    easing: 'ease-in-out'
  });
});

实现原理

calculate 方法首先获取目标节点对象或其CSS选择器,然后根据传入的属性名和值,计算出最终值,并使用内部的 animate 方法来实现更新目标属性值的动画效果。更新完成后,如果指定了 onComplete 回调函数,则调用该函数。

注意事项

  • calculate 方法只能应用于单一的属性计算,无法同时计算多个属性。
  • easing 参数可选值有限,请参照对应的文档了解可使用的缓动函数名称。