typescript NativeScript动画

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript NativeScript动画相关的知识,希望对你有一定的参考价值。

/**
 * Add this to your app's SharedModule declarations
 */

import { Directive, ElementRef, Input } from '@angular/core';

// nativescript
import { View } from 'tns-core-modules/ui/core/view';
import { Animation, AnimationDefinition } from 'tns-core-modules/ui/animation';

@Directive({
  selector: '[animate]'
})
export class AnimateDirective {

  @Input() animate: AnimationDefinition;

  private _view: View;
  private _animation: Animation;
  private _viewInit = false;

  constructor(private _el: ElementRef) { }

  ngAfterViewInit() {
    if (!this._viewInit) {
      this._viewInit = true;
      this._initAndPlay();
    }
  }

  ngOnDestroy() {
    this._cancel();
  }

  private _initAndPlay() {
    if (!this._view && this._el && this._el.nativeElement) {
      this._view = this._el.nativeElement;
    }
    if (this._view && this.animate) {
      let animateOptions: AnimationDefinition = this.animate;
      animateOptions.target = this._view;
      this._animation = new Animation([animateOptions]);
      this._play();
    }
  }

  private _cancel() {
    if (this._animation && this._animation.isPlaying) {
      this._animation.cancel();
    }
  }

  private _play() {
    if (this._animation && !this._animation.isPlaying) {
      this._animation.play().then(_ => {
        // ignore
      }, (err) => {
        // ignore
        // need this here to prevent:
        // Unhandled Promise rejection: Animation cancelled. ; Zone: <root> ; Task: null ; Value: Error: Animation cancelled. _rejectAnimationFinishedPromise@file:///app/tns_modules/tns-core-modules/ui/animation/animation-common.js:98:31 [<root>]
      });
    }
  }
}

以上是关于typescript NativeScript动画的主要内容,如果未能解决你的问题,请参考以下文章

如何在 NativeScript 项目中隐藏 TypeScript 自动生成的文件

使用 Typescript 时如何在 NativeScript 中访问 Native api

Nativescript / TypeScript 错误 - 错误 TS5053:无法使用选项“inlineSourceMap”指定选项“sourceMap”

使用 Angular 和 TypeScript 使用最新 NativeScript 中的参数进行导航

在 nativescript (with typescript) 项目中使用 obj-c 类时的编组设置

如何在nativescript typescript中动态创建xml组件