【问题标题】:Nativescript - If creating an animation set and playing sequentially, promise resolves before animation is completeNativescript - 如果创建动画集并按顺序播放,promise 在动画完成之前解析
【发布时间】:2016-12-12 23:29:04
【问题描述】:

尝试在 iOS 中(目前)编写一个简单的应用程序,看看效果如何。

使用 nativescript 版本 2.4.1 和 Angular2

我正在创建一组图像以放置在 AbsoluteLayout 容器中。我希望这些图像一次一张地滑入。我循环并在创建图像时还创建了一个动画集。循环完成后,我会按顺序播放动画,但承诺会在动画完成之前解决。我希望承诺在所有动画完成后解决,但事实并非如此。我需要在动画集完成后做一些事情。我正在做类似的事情

let absoluteArea = <AbsoluteLayout>this.page.getViewById('absoluteArea'),
   animationSet = [];

    for (let i = 0; i < 100; i++) {
        let newImage = new Image();
        newImage.style.backgroundImage = some.jpg;
        newImage.width = width;
        newImage.height = height;

        AbsoluteLayout.setLeft(newImage, leftPosition);
        AbsoluteLayout.setTop(newImage, centerTopPosition);

        animationSet.push({target: newImage, translate: {x: tranlatedLeftPosition, y: 0}, duration: 75 });

        absoluteArea.addChild(newImage);
    }

    animationAction = new Animation(animationSet, true);
    animationAction.play()
        .then(() => {
            console.log('DONE');
        })
        .catch((err) => {
            console.log('Animation set error', err);
        }); 

控制台日志“DONE”将在动画完成之前很久就被记录下来。我错过了什么吗?此外,如果您在动画承诺的 then 处理程序中检查动画的 isPlaying 属性,即使动画仍在播放,它也是错误的

【问题讨论】:

    标签: nativescript angular2-nativescript


    【解决方案1】:

    这是一个错误。请参阅https://github.com/NativeScript/NativeScript/issues/3271

    目前的解决方法是使用超时

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多