diff --git a/play/assets/scene/scene/scene.js b/play/assets/scene/scene/scene.js
index c4bbeaea00e0287c2d14cb7ccf05af3ac1f248a5..f95e4edf2d6c8e4d414786f2c1e49f8c01c8ca2e 100644
--- a/play/assets/scene/scene/scene.js
+++ b/play/assets/scene/scene/scene.js
@@ -66,8 +66,20 @@ cc.Class({
 		})
 	},
 
-	getData(cb) {
-		cb(this.getDefaultData());
+	getData(func) {
+		if (window && window.courseware) {
+			window.courseware.getData(func, 'scene');
+			return;
+		}
+
+		const middleLayer = cc.find('middleLayer');
+		if (middleLayer) {
+			const middleLayerComponent = middleLayer.getComponent('middleLayer');
+			middleLayerComponent.getData(func);
+			return;
+		}
+
+		func(this.getDefaultData());
 	},
 
 	getDefaultData() {
diff --git a/play/assets/scene/script/util.js b/play/assets/scene/script/util.js
index b3e77e6a46e368bb08aa64c6874d4cea701e84d5..7af7189e0876a8c81ce489ad12ba830b9f98d9d2 100644
--- a/play/assets/scene/script/util.js
+++ b/play/assets/scene/script/util.js
@@ -348,6 +348,7 @@ export function onHomeworkFinish() {
     if (middleLayerComponent.role == 'student') {
       middleLayerComponent.onHomeworkFinish(() => { });
     }
-    return;
+  } else {
+    console.log('onHomeworkFinish');
   }
 }
\ No newline at end of file