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组件