本文整理汇总了TypeScript中babylonjs.Observable类的典型用法代码示例。如果您正苦于以下问题:TypeScript Observable类的具体用法?TypeScript Observable怎么用?TypeScript Observable使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Observable类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: dispose
/**
* dispose the manager and all of its associated viewers
*/
public dispose() {
delete this._onViewerAdded;
for (let id in this._viewers) {
this._viewers[id].dispose();
}
this.onViewerAddedObservable.clear();
this.onViewerRemovedObservable.clear();
}
示例2: dispose
dispose() {
this.onSceneInitObservable.clear();
this.onEngineInitObservable.clear();
this.onModelLoadedObservable.clear();
this.onModelLoadProgressObservable.clear();
this.onModelLoadErrorObservable.clear();
this.onModelAddedObservable.clear();
this.onModelRemovedObservable.clear();
this.onViewerInitDoneObservable.clear();
this.onLoaderInitObservable.clear();
this.onFrameRenderedObservable.clear();
}
示例3: Promise
return new Promise((resolve, reject) => {
let localViewer = this.getViewerById(id)
if (localViewer) {
return resolve(localViewer);
}
let viewerFunction = (viewer: AbstractViewer) => {
if (viewer.getBaseId() === id) {
resolve(viewer);
this.onViewerAddedObservable.removeCallback(viewerFunction);
}
}
this.onViewerAddedObservable.add(viewerFunction);
});
示例4: GroupModelAnimation
this.loader = SceneLoader.ImportMesh(undefined, base, filename, this._scene, (meshes, particleSystems, skeletons) => {
meshes.forEach(mesh => {
Tags.AddTagsTo(mesh, "viewerMesh");
});
this.meshes = meshes;
this.particleSystems = particleSystems;
this.skeletons = skeletons;
// check if this is a gltf loader and load the animations
if (this.loader.name === 'gltf') {
this._scene.animationGroups.forEach(ag => {
// add animations that didn't exist before
if (animationsArray.indexOf(ag) === -1) {
this._animations.push(new GroupModelAnimation(ag));
}
})
} else {
skeletons.forEach((skeleton, idx) => {
let ag = new BABYLON.AnimationGroup("animation-" + idx, this._scene);
skeleton.getAnimatables().forEach(a => {
if (a.animations[0]) {
ag.addTargetedAnimation(a.animations[0], a);
}
});
this._animations.push(new GroupModelAnimation(ag));
});
}
if (this._modelConfiguration.animation) {
if (this._modelConfiguration.animation.playOnce) {
this._animations.forEach(a => {
a.playMode = AnimationPlayMode.ONCE;
});
}
if (this._modelConfiguration.animation.autoStart && this._animations.length) {
let animationName = this._modelConfiguration.animation.autoStart === true ?
this._animations[0].name : this._modelConfiguration.animation.autoStart;
this.playAnimation(animationName);
}
}
this.onLoadedObservable.notifyObserversWithPromise(this);
}, (progressEvent) => {
示例5:
}, (e, m, exception) => {
this.onLoadErrorObservable.notifyObserversWithPromise({ message: m, exception: exception });
}, plugin)!;
示例6: _onViewerAdded
private _onViewerAdded(viewer: AbstractViewer) {
this.onViewerAdded && this.onViewerAdded(viewer);
this.onViewerAddedObservable.notifyObservers(viewer);
}
示例7: resolve
let viewerFunction = (viewer: AbstractViewer) => {
if (viewer.getBaseId() === id) {
resolve(viewer);
this.onViewerAddedObservable.removeCallback(viewerFunction);
}
}
示例8: removeViewer
/**
* remove a viewer from the viewer manager
* @param viewer the viewer to remove
*/
public removeViewer(viewer: AbstractViewer) {
let id = viewer.getBaseId();
delete this._viewers[id];
this.onViewerRemovedObservable.notifyObservers(id);
}