bill 4 月之前
父節點
當前提交
773f5b92fa
共有 2 個文件被更改,包括 26 次插入19 次删除
  1. 26 18
      src/sdk/association/animation.ts
  2. 0 1
      src/store/animation.ts

+ 26 - 18
src/sdk/association/animation.ts

@@ -73,13 +73,13 @@ export const addAM = (data: AnimationModel): Promise<AnimationModel3D> => {
 
   const stopAttrib = mergeFuns(
     watchEffect(() =>
-      amMap[key].am?.changeVisibilityRange(
+      amMap[key]?.am?.changeVisibilityRange(
         data.globalVisibility ? undefined : data.visibilityRange
       )
     ),
-    watchEffect(() => amMap[key].am?.changeTitle(data.title)),
-    watchEffect(() => amMap[key].am?.visibilityTitle(data.showTitle)),
-    watchEffect(() => amMap[key].am?.changeFontSize(data.fontSize))
+    watchEffect(() => amMap[key]?.am?.changeTitle(data.title)),
+    watchEffect(() => amMap[key]?.am?.visibilityTitle(data.showTitle)),
+    watchEffect(() => amMap[key]?.am?.changeFontSize(data.fontSize))
   );
 
   const stopWatch = watch(
@@ -119,11 +119,13 @@ export const addFrame = (
   const stopLoad = watch(
     () => {
       const exists = am.frames.some(({ id }) => id === data.id);
+      amMap[key].am
       return [amMap[key], exists] as const;
     },
     ([map, exists]) => {
-      if (!map.am) return;
+      if (!map?.am) return;
       if (exists && !map.frames[data.id]) {
+        console.error('addFrame', am.title, data)
         map.frames[data.id] = map.am.addFrame(data);
       } else if (!exists && map.frames[data.id]) {
         map.frames[data.id].destroy();
@@ -134,8 +136,8 @@ export const addFrame = (
   );
 
   const stopAttrib = mergeFuns(
-    watchEffect(() => amMap[key].frames[data.id]?.changeTime(data.time)),
-    watchEffect(() => data.mat && amMap[key].frames[data.id]?.setMat(data.mat))
+    watchEffect(() => amMap[key]?.frames[data.id]?.changeTime(data.time)),
+    watchEffect(() => data.mat && amMap[key]?.frames[data.id]?.setMat(data.mat))
   );
 
   const stopWatch = watch(
@@ -174,11 +176,13 @@ export const addAction = (
   const stopLoad = watch(
     () => {
       const exists = am.actions.some(({ id }) => id === data.id);
+      amMap[key].am
       return [amMap[key], exists] as const;
     },
     ([map, exists]) => {
-      if (!map.am) return;
+      if (!map?.am) return;
       if (exists && !map.actions[data.id]) {
+        console.error('addAction', am.title, data)
         map.actions[data.id] = map.am.addAction(data);
       } else if (!exists && map.actions[data.id]) {
         map.actions[data.id].destroy();
@@ -190,13 +194,13 @@ export const addAction = (
   );
 
   const stopAttrib = mergeFuns(
-    watchEffect(() => amMap[key].actions[data.id]?.changeTime(data.time)),
+    watchEffect(() => amMap[key]?.actions[data.id]?.changeTime(data.time)),
     watchEffect(() => {
-      amMap[key].actions[data.id]?.changeAmplitude(data.amplitude);
+      amMap[key]?.actions[data.id]?.changeAmplitude(data.amplitude);
     }),
-    watchEffect(() => amMap[key].actions[data.id]?.changeSpeed(data.speed)),
+    watchEffect(() => amMap[key]?.actions[data.id]?.changeSpeed(data.speed)),
     watchEffect(() =>
-      amMap[key].actions[data.id]?.changeDuration(data.duration)
+      amMap[key]?.actions[data.id]?.changeDuration(data.duration)
     )
   );
 
@@ -238,11 +242,13 @@ export const addPath = (
   const stopLoad = watch(
     () => {
       const exists = am.paths.some(({ id }) => id === data.id);
+      amMap[key]?.am
       return [amMap[key], exists, path.value] as const;
     },
     ([map, exists, path]) => {
-      if (!map.am || !path) return;
+      if (!map?.am || !path) return;
       if (exists && !map.paths[data.id]) {
+        console.error('addPath', am.title, data)
         map.paths[data.id] = map.am.addPath({ ...data, path });
       } else if (!exists && map.paths[data.id]) {
         map.paths[data.id].destroy();
@@ -253,10 +259,10 @@ export const addPath = (
   );
 
   const stopAttrib = mergeFuns(
-    watchEffect(() => amMap[key].paths[data.id]?.changeTime(data.time)),
-    watchEffect(() => amMap[key].paths[data.id]?.changeReverse(data.reverse)),
-    watchEffect(() => amMap[key].paths[data.id]?.changeDuration(data.duration)),
-    watchEffect(() => amMap[key].paths[data.id]?.changePath(path.value))
+    watchEffect(() => amMap[key]?.paths[data.id]?.changeTime(data.time)),
+    watchEffect(() => amMap[key]?.paths[data.id]?.changeReverse(data.reverse)),
+    watchEffect(() => amMap[key]?.paths[data.id]?.changeDuration(data.duration)),
+    watchEffect(() => amMap[key]?.paths[data.id]?.changePath(path.value))
   );
 
   const stopWatch = watch(
@@ -295,11 +301,13 @@ export const addSubtitle = (data: AnimationModelSubtitle) => {
   const stopLoad = watch(
     () => {
       const exists = am.subtitles.some(({ id }) => id === data.id);
+      amMap[key].am
       return [amMap[key], exists] as const;
     },
     ([map, exists]) => {
-      if (!map.am) return;
+      if (!map?.am) return;
       if (exists && !map.subtitles[data.id]) {
+        console.error('add subtitle', am.title, data)
         map.subtitles[data.id] = mount(
           document.querySelector("#app")!,
           Subtitle,

+ 0 - 1
src/store/animation.ts

@@ -83,7 +83,6 @@ export const autoSaveAnimationModel = autoSetModeCallback([ams], {
   backup: togetherCallback([backupAnimationModels]),
   recovery: togetherCallback([recoverAnimationModels]),
   isUpdate: (newv) => {
-    console.error('newv')
     return inRevise(newv, getBackupAnimationModels())
   },
   save: async () => {