当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript framesync.update函数代码示例

本文整理汇总了TypeScript中framesync.update函数的典型用法代码示例。如果您正苦于以下问题:TypeScript update函数的具体用法?TypeScript update怎么用?TypeScript update使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了update函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: action

  action(({ complete, update }) => {
    const {
      velocity = 0,
      from = 0,
      power = 0.8,
      timeConstant = 350,
      restDelta = 0.5,
      modifyTarget
    } = props;
    let elapsed = 0;
    const amplitude = power * velocity;
    const idealTarget = Math.round(from + amplitude);
    const target =
      typeof modifyTarget === 'undefined'
        ? idealTarget
        : modifyTarget(idealTarget);

    const process = sync.update(({ delta: frameDelta }) => {
      elapsed += frameDelta;
      const delta = -amplitude * Math.exp(-elapsed / timeConstant);
      const isMoving = delta > restDelta || delta < -restDelta;
      const current = isMoving ? target + delta : target;

      update(current);

      if (!isMoving) {
        cancelSync.update(process);
        complete();
      }
    }, true);

    return {
      stop: () => cancelSync.update(process)
    };
  });
开发者ID:Popmotion,项目名称:popmotion,代码行数:35,代码来源:index.ts

示例2:

 complete: () => {
   if (!hasCompleted) {
     hasCompleted = true;
     numCompletedActions++;
     if (numCompletedActions === numActions) sync.update(complete);
   }
 },
开发者ID:Popmotion,项目名称:popmotion,代码行数:7,代码来源:multi.ts

示例3: expect

    sync.update(() => {
      expect(smoother(100)).toBe(100);

      sync.update(() => {
        expect(smoother(200)).toBeGreaterThan(100);
        resolve();
      });
    });
开发者ID:Popmotion,项目名称:popmotion,代码行数:8,代码来源:smooth.test.ts

示例4: updateTween

 process = sync.update(({ delta }) => {
   // TODO Maybe try something different to eat the variations in framerate
   elapsed += delta * playDirection;
   updateTween();
   if (isTweenComplete() && complete) {
     cancelSync.update(process);
     sync.update(complete, false, true);
   }
 }, true);
开发者ID:Popmotion,项目名称:popmotion,代码行数:9,代码来源:index.ts

示例5: Promise

  return new Promise(resolve => {
    sync.update(() => {
      expect(smoother(100)).toBe(100);

      sync.update(() => {
        expect(smoother(200)).toBeGreaterThan(100);
        resolve();
      });
    });
  });
开发者ID:Popmotion,项目名称:popmotion,代码行数:10,代码来源:smooth.test.ts

示例6: action

  action(({ update }) => {
    const output = {
      touches: points,
      scale,
      rotate
    };

    let initialDistance = 0.0;
    let initialRotation = 0.0;

    const isGesture = points.length > 1;

    if (isGesture) {
      const [firstTouch, secondTouch] = points;
      initialDistance = distance(firstTouch, secondTouch);
      initialRotation = angle(firstTouch, secondTouch);
    }

    const updatePoint = () => {
      if (isGesture) {
        const [firstTouch, secondTouch] = points;
        const newDistance = distance(firstTouch, secondTouch);
        const newRotation = angle(firstTouch, secondTouch);

        output.scale = scale * (newDistance / initialDistance);
        output.rotate = rotate + (newRotation - initialRotation);
      }

      update(output);
    };

    const onMove = (e: TouchEvent) => {
      if (preventDefault || e.touches.length > 1) e.preventDefault();
      sync.update(updatePoint);
    };

    const updateOnMove = listen(document, 'touchmove', {
      passive: !preventDefault
    }).start(onMove);

    // TODO: Look into running this as a process
    if (isTouchDevice) sync.update(updatePoint);

    return {
      stop: () => {
        cancelSync.update(updatePoint);
        updateOnMove.stop();
      }
    };
  });
开发者ID:Popmotion,项目名称:popmotion,代码行数:50,代码来源:index.ts

示例7: action

  action(({ update }) => {
    const updatePoint = () => update(point);

    const onMove = (e: MouseEvent) => {
      if (preventDefault) e.preventDefault();
      sync.update(updatePoint);
    };

    const updateOnMove = listen(document, 'mousemove').start(onMove);

    if (isMouseDevice) sync.update(updatePoint);

    return {
      stop: () => {
        cancelSync.update(updatePoint);
        updateOnMove.stop();
      }
    };
  });
开发者ID:Popmotion,项目名称:popmotion,代码行数:19,代码来源:mouse.ts

示例8:

 const onMove = (e: TouchEvent) => {
   if (preventDefault || e.touches.length > 1) e.preventDefault();
   sync.update(updatePoint);
 };
开发者ID:Popmotion,项目名称:popmotion,代码行数:4,代码来源:index.ts

示例9: speedPerFrame

    ({ complete, update }): PhysicsInterface => {
      let {
        acceleration = 0,
        friction = 0,
        velocity = 0,
        springStrength,
        to
      } = props;
      const { restSpeed = 0.001, from = 0 } = props;
      let current = from;

      const process = sync.update(({ delta }) => {
        // Integration doesn't work well with very low numbers
        const elapsed = Math.max(delta, 16);

        if (acceleration) velocity += speedPerFrame(acceleration, elapsed);
        if (friction) velocity *= (1 - friction) ** (elapsed / 100);

        if (springStrength !== undefined && to !== undefined) {
          const distanceToTarget = to - current;
          velocity += distanceToTarget * speedPerFrame(springStrength, elapsed);
        }

        current += speedPerFrame(velocity, elapsed);

        update(current);

        const isComplete =
          restSpeed !== false && (!velocity || Math.abs(velocity) <= restSpeed);

        if (isComplete) {
          cancelSync.update(process);
          complete();
        }
      }, true);

      return {
        set(v) {
          current = v;
          return this;
        },
        setAcceleration(v) {
          acceleration = v;
          return this;
        },
        setFriction(v) {
          friction = v;
          return this;
        },
        setSpringStrength(v) {
          springStrength = v;
          return this;
        },
        setSpringTarget(v) {
          to = v;
          return this;
        },
        setVelocity(v) {
          velocity = v;
          return this;
        },
        stop: () => cancelSync.update(process)
      };
    }
开发者ID:Popmotion,项目名称:popmotion,代码行数:64,代码来源:index.ts


注:本文中的framesync.update函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。