WEB开发网
开发学院网页设计JavaScript 用 E4X 和 Prototype 创建 Ajax mindreader 应用程... 阅读

用 E4X 和 Prototype 创建 Ajax mindreader 应用程序,第 2 部分: 使 mindreader 应用程序更智能化

 2010-03-09 00:00:00 来源:WEB开发网   
核心提示: 最后,选择知识库中的所有目标元素,用 E4X 和 Prototype 创建 Ajax mindreader 应用程序,第 2 部分: 使 mindreader 应用程序更智能化(6),过滤出与 currentGuessId 对应的目标,并在其中添加新的答案元素,否则在选择 “Anim

最后,选择知识库中的所有目标元素,过滤出与 currentGuessId 对应的目标,并在其中添加新的答案元素。这样就更新了现有目标。

现在需要创建新目标。这个新目标元素应该包含应用于它的所有以前的答案,所以最简便的方法是复制原来的目标,见清单 8。

清单 8. 创建新目标

... 
  knowledgeBase..target.(@id==currentGuessId).appendChild(oldTargetNewAnswer); 
  var oldTargetElement = new XML(); 
  oldTargetElement = knowledgeBase..target.(@id==currentGuessId); 
 
  //Clone old target 
  var newTargetElement = oldTargetElement.copy(); 
  newTargetElement.@id = nextTargetId; 
  nextTargetId++; 
  newTargetElement.display = newTarget; 
 
  var newAnswerElement = newTargetElement.answer.(@questionid == thisQuestionId); 
  newAnswerElement["answerValue"+thisQuestionId] = newAnswer; 
 
  knowledgeBase.targets.appendChild(newTargetElement); 
 
  hide_form("answerFormDiv");  
 
  start_over(); 
 
} 

首先,获得原来的目标元素的引用。然后,使用 copy() 方法创建这个元素的拷贝。在此之后,需要把 ID 和 display 重新设置为新的值。最后,需要把最近的答案元素的值改为新的值。

现在,可以把新元素添加到知识库中。

现在,可以用 start_over() 从头开始游戏。除非删除了 alert() 语句,否则在选择 “Animal” 之后就可以看到新的问题和目标,见图 3。

编缉推荐阅读以下文章

  • 用 E4X 和 Prototype 创建 Ajax mindreader 应用程序,第 1 部分: 构建 Twenty Questions 基础结构

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:EX Prototype 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接