Frame 1
function init() {
firstTime = true;
videoHandler = new com.D3.NLPBot.VideoHandler(_root.vid.VB, 2);
videoHandler.start();
videoHandler.playVideo("enter/bothWalkInRight.flv");
videoHandler.addTriggerEvent("beverage/rollingRock.flv", 15, "rr event");
videoHandler.addTriggerEvent("sex/boobSlider.flv", 12, "slider event");
videoHandler.addStartVideos(new Array("enter/bothWalkInRight.flv"));
videoHandler.addUnknownQueryVideos(new Array("idle/lisaSaysWhat.flv", "idle/trishaSaysWhat.flv"));
videoHandler.addCensorVideo("censor/bothSayNo.flv");
videoHandler.addIdleVideo("idle/idle.flv");
var _local4 = {};
_local4.parent = this;
_local4.onSearch = function (resObj) {
videoHandler.clearQueue();
trace("FOUND THESE VIDEO MATCHES: " + resObj.searchResult);
if (resObj.searchResult[0] == "censor") {
var _local3 = videoHandler.getCensorVideo();
videoHandler.addVideoToQueue(_local3);
} else if ((resObj.searchResult[0] == "") || (resObj.searchResult[0] == undefined)) {
var _local2 = videoHandler.getUnknownQueryVideo();
trace("adding unknown to queue: " + _local2);
videoHandler.addVideoToQueue(_local2);
} else {
videoHandler.addVideosToQueue(resObj.searchResult);
}
return(videoHandler.playVideo());
};
tammy.addEventListener("onSearch", _local4);
var _local3 = {};
_local3.parent = this;
_local3.onStop = function () {
if (_root.rolling) {
_root.rrHolder.removeMovieClip();
_root.rolling = false;
}
if ((cachedUserRequest.length > 0) && (videoHandler.getVideoQueue().length == 0)) {
tammy.search(cachedUserRequest);
cachedUserRequest = "";
} else {
return(videoHandler.playVideo());
}
};
_local3.onError = function (errorObj) {
videoHandler.playVideo("idle/idle.flv");
};
_local3.onPause = function () {
};
_local3.onVideoTriggerEvent = function (eventObj) {
if (eventObj.triggerName == "slider event") {
videoHandler.pauseVideo();
this.parent.attachScaler();
} else if (eventObj.triggerName == "rr event") {
this.parent.rollingRockEvent();
}
};
videoHandler.addEventListener("onStop", _local3);
videoHandler.addEventListener("onPause", _local3);
videoHandler.addEventListener("onVideoLoaded", _local3);
videoHandler.addEventListener("onVideoTriggerEvent", _local3);
}
function attachScaler() {
_root.createEmptyMovieClip("sliderHolder", 1000);
_root.sliderHolder.loadMovie("sex/boob_slider.swf", 1000);
_root.sliderHolder._x = 0;
_root.sliderHolder._y = 0;
}
function rollingRockEvent() {
_root.rolling = true;
_root.createEmptyMovieClip("rrHolder", 1000);
_root.rrHolder.loadMovie("beverage/button_open.swf", 1000);
_root.rrHolder._x = 0;
_root.rrHolder._y = 0;
}
_global.tammy = new com.D3.NLPBot.Main("bot_01_v01a.xml", "vb2_actions.xml");
_global.videoHandler;
var handlerList = new Array();
var currentVidHolder = _root.vid.VB;
var firstTime;
var cachedUserRequest;
var botListener = {};
botListener.parent = this;
botListener.onBotReady = function (success) {
if (success) {
this.parent.init();
}
};
tammy.addEventListener("onBotReady", botListener);
var textFieldListener = {};
textFieldListener.onSetFocus = function (oldFocus, newFocus) {
if (newFocus == _root.original) {
if (firstTime) {
_root.original.text = "";
}
}
};
Selection.addListener(textFieldListener);
var keyListener = {};
keyListener.parent = this;
keyListener.onKeyDown = function () {
if (Key.isDown(13)) {
if (Selection.getFocus() == "_level0.original") {
videoHandler.resume();
_root.sliderHolder.removeMovieClip();
if ((videoHandler.getVideoStatus() == "stopped") || (videoHandler.isIdle())) {
tammy.search(_root.original.text);
_root.original.text = "";
} else {
if (_root.original.text != "") {
this.parent.cachedUserRequest = _root.original.text;
}
_root.original.text = "";
}
}
}
};
Key.addListener(keyListener);
goButton.onRelease = function () {
_root.sliderHolder.removeMovieClip();
videoHandler.resume();
if ((videoHandler.getVideoStatus() == "stopped") || (videoHandler.isIdle())) {
tammy.search(_root.original.text);
_root.original.text = "";
} else if (_root.original.text != "") {
cachedUserRequest = _root.original.text;
}
Selection.setFocus("_level0.original");
};
Symbol 9 MovieClip [text4] Frame 22
stop();
Symbol 13 MovieClip [text3] Frame 22
stop();
Symbol 17 MovieClip [text2] Frame 22
stop();
Symbol 22 MovieClip [text1] Frame 22
stop();
Symbol 37 MovieClip [__Packages.com.D3.NLPBot.Main] Frame 0
class com.D3.NLPBot.Main
{
var lex, actionList, actionListener, lexiconListener, searchBot;
function Main (lexiconLocation, actionLoc) {
mx.events.EventDispatcher.initialize(this);
lex = new com.D3.NLPBot.LexiconManager(lexiconLocation);
actionList = new com.D3.NLPBot.ActionCollection(actionLoc);
actionListener = {};
lexiconListener = {};
init();
}
function init() {
var parent = this;
lexiconListener.onLexiconLoaded = function (lexiconObj) {
parent.lexicon = lexiconObj.lexicon;
parent.actionListener.onActionListLoaded = function (obj) {
parent.actionList.removeEventListener("onActionListLoaded", parent.actionListener);
trace(obj.actions[0].names);
parent.searchBot = new com.D3.NLPBot.Search(parent.lexicon, obj.actions);
var _local2 = {target:this, type:"onBotReady"};
_local2.success = true;
parent.dispatchEvent(_local2);
};
parent.actionList.addEventListener("onActionListLoaded", parent.actionListener);
parent.actionList.openActionList();
};
lex.addEventListener("onLexiconLoaded", lexiconListener);
lex.openLexicon();
}
function search(query) {
var _local2 = {};
_local2.parent = this;
_local2.onSearchResult = function (resObj) {
this.parent.searchBot.removeEventListener("onSearchResult", this);
var _local2 = {target:this, type:"onSearch"};
_local2.searchResult = resObj.searchResult;
this.parent.dispatchEvent(_local2);
};
searchBot.addEventListener("onSearchResult", _local2);
searchBot.searchQuery(query, 0);
}
var wordCount = 0;
var dispatchEvent = new Function();
var addEventListener = new Function();
var removeEventListener = new Function();
}
Symbol 38 MovieClip [__Packages.com.D3.NLPBot.LexiconManager] Frame 0
class com.D3.NLPBot.LexiconManager
{
var lexicon, lexiconLocation, lexiconXML, xmlParser, lexiconListener;
function LexiconManager (lexiconLoc) {
mx.events.EventDispatcher.initialize(this);
lexicon = {};
lexiconLocation = lexiconLoc;
lexiconXML = new XML();
xmlParser = new com.D3.utils.XMLHandler();
}
function openLexicon() {
var parent = this;
lexiconXML.ignoreWhite = true;
lexiconXML.onLoad = function (success) {
parent.parseLexicon(this);
};
lexiconXML.load(lexiconLocation);
}
function parseLexicon(lexiconXML) {
var receiveCount = 0;
lexiconListener = {};
var parent = this;
lexiconListener.onXMLNodeSearch = function (searchObj) {
switch (searchObj.node.nodeName) {
case "noun" :
parent.lexicon.noun = new Array();
var _local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.noun[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.noun[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "pronoun" :
parent.lexicon.pronoun = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.pronoun[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.pronoun[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "verb" :
parent.lexicon.verb = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.verb[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.verb[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "adverb" :
parent.lexicon.adverb = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.adverb[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.adverb[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "preposition" :
parent.lexicon.preposition = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.preposition[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.preposition[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "interjection" :
parent.lexicon.interjection = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.interjection[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.interjection[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "conjunction" :
parent.lexicon.conjunction = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.conjunction[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.conjunction[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "propernoun" :
trace("propernoun found");
parent.lexicon.propernoun = new Array();
_local4 = 0;
while (_local4 < searchObj.node.childNodes.length) {
parent.lexicon.propernoun[searchObj.node.childNodes[_local4].nodeName] = new Array();
if (searchObj.node.childNodes[_local4].attributes.s != undefined) {
var _local5 = searchObj.node.childNodes[_local4].attributes.s.split(",");
var _local3 = 0;
while (_local3 < _local5.length) {
parent.lexicon.propernoun[searchObj.node.childNodes[_local4].nodeName][_local3] = _local5[_local3];
_local3++;
}
}
_local4++;
}
break;
case "glueList" :
parent.lexicon.glueList = searchObj.node.childNodes[0].attributes.s.split(",");
break;
case "ignoreList" :
parent.lexicon.ignoreList = searchObj.node.childNodes[0].attributes.s.split(",");
break;
case "censorList" :
parent.lexicon.censorList = searchObj.node.childNodes[0].attributes.s.split(",");
break;
case "endNode" :
receiveCount++;
if (receiveCount != 9) {
break;
}
var _local6 = {target:this, type:"onLexiconLoaded"};
_local6.lexicon = parent.lexicon;
parent.dispatchEvent(_local6);
}
};
xmlParser.addEventListener("onXMLNodeSearch", lexiconListener);
xmlParser.findXMLNode(lexiconXML, "noun");
xmlParser.findXMLNode(lexiconXML, "pronoun");
xmlParser.findXMLNode(lexiconXML, "verb");
xmlParser.findXMLNode(lexiconXML, "adverb");
xmlParser.findXMLNode(lexiconXML, "preposition");
xmlParser.findXMLNode(lexiconXML, "interjection");
xmlParser.findXMLNode(lexiconXML, "conjunction");
xmlParser.findXMLNode(lexiconXML, "glueList");
xmlParser.findXMLNode(lexiconXML, "ignoreList");
xmlParser.findXMLNode(lexiconXML, "censorList");
xmlParser.findXMLNode(lexiconXML, "propernoun");
}
function getLexicon() {
return(lexicon);
}
var dispatchEvent = new Function();
var addEventListener = new Function();
var removeEventListener = new Function();
}
Symbol 39 MovieClip [__Packages.com.D3.utils.XMLHandler] Frame 0
class com.D3.utils.XMLHandler
{
function XMLHandler () {
mx.events.EventDispatcher.initialize(this);
trace("XMLHandler created");
}
function findXMLNode(XMLFile, XMLnodeName) {
while (XMLFile.nodeType == 1) {
if (XMLFile.nodeName == XMLnodeName) {
var _local5 = {target:this, type:"onXMLNodeSearch"};
_local5.node = XMLFile;
dispatchEvent(_local5);
} else {
if (XMLFile.firstChild.nodeType == 1) {
return(findXMLNode(XMLFile.firstChild, XMLnodeName));
}
if (XMLFile.parentNode.nextSibling.nodeType == 1) {
return(findXMLNode(XMLFile.parentNode.nextSibling, XMLnodeName));
}
}
XMLFile = XMLFile.nextSibling;
}
var _local5 = {target:this, type:"onXMLNodeSearch"};
var _local4 = new XML("<endNode></endNode>");
_local4.nodeName = "endNode";
_local5.node = _local4;
dispatchEvent(_local5);
}
function findXMLNodeByAttribute(XMLFile, XMLnodeName, XMLAttribute, XMLAttributeValue) {
while (XMLFile.nodeType == 1) {
if (XMLFile.nodeName == XMLnodeName) {
if (XMLFile.attributes[XMLAttribute] == XMLAttributeValue) {
var _local3 = {target:this, type:"onXMLNodeAttributeSearch"};
_local3.node = XMLFile;
_local3.searchAttribute = XMLAttributeValue;
dispatchEvent(_local3);
}
} else if (XMLFile.firstChild.nodeType == 1) {
findXMLNodeByAttribute(XMLFile.firstChild, XMLnodeName, XMLAttribute, XMLAttributeValue);
}
XMLFile = XMLFile.nextSibling;
}
}
function returnAsType(typeToReturn) {
}
function toString() {
return("XMLFetcher component version 0.8");
}
var dispatchEvent = new Function();
var addEventListener = new Function();
var removeEventListener = new Function();
}
Symbol 40 MovieClip [__Packages.mx.events.EventDispatcher] Frame 0
class mx.events.EventDispatcher
{
function EventDispatcher () {
}
static function _removeEventListener(queue, event, handler) {
if (queue != undefined) {
var _local4 = queue.length;
var _local1;
_local1 = 0;
while (_local1 < _local4) {
var _local2 = queue[_local1];
if (_local2 == handler) {
queue.splice(_local1, 1);
return(undefined);
}
_local1++;
}
}
}
static function initialize(object) {
if (_fEventDispatcher == undefined) {
_fEventDispatcher = new mx.events.EventDispatcher();
}
object.addEventListener = _fEventDispatcher.addEventListener;
object.removeEventListener = _fEventDispatcher.removeEventListener;
object.dispatchEvent = _fEventDispatcher.dispatchEvent;
object.dispatchQueue = _fEventDispatcher.dispatchQueue;
}
function dispatchQueue(queueObj, eventObj) {
var _local7 = "__q_" + eventObj.type;
var _local4 = queueObj[_local7];
if (_local4 != undefined) {
var _local5;
for (_local5 in _local4) {
var _local1 = _local4[_local5];
var _local3 = typeof(_local1);
if ((_local3 == "object") || (_local3 == "movieclip")) {
if (_local1.handleEvent != undefined) {
_local1.handleEvent(eventObj);
}
if (_local1[eventObj.type] != undefined) {
if (exceptions[eventObj.type] == undefined) {
_local1[eventObj.type](eventObj);
}
}
} else {
_local1.apply(queueObj, [eventObj]);
}
}
}
}
function dispatchEvent(eventObj) {
if (eventObj.target == undefined) {
eventObj.target = this;
}
this[eventObj.type + "Handler"](eventObj);
dispatchQueue(this, eventObj);
}
function addEventListener(event, handler) {
var _local3 = "__q_" + event;
if (this[_local3] == undefined) {
this[_local3] = new Array();
}
_global.ASSetPropFlags(this, _local3, 1);
_removeEventListener(this[_local3], event, handler);
this[_local3].push(handler);
}
function removeEventListener(event, handler) {
var _local2 = "__q_" + event;
_removeEventListener(this[_local2], event, handler);
}
static var _fEventDispatcher = undefined;
static var exceptions = {move:1, draw:1};
}
Symbol 41 MovieClip [__Packages.com.D3.NLPBot.ActionCollection] Frame 0
class com.D3.NLPBot.ActionCollection
{
var clipLocation, clipList, clipXML, xmlParser;
function ActionCollection (clipLoc) {
mx.events.EventDispatcher.initialize(this);
clipLocation = clipLoc;
clipList = new Array();
clipXML = new XML();
xmlParser = new com.D3.utils.XMLHandler();
}
function openActionList() {
var parent = this;
clipXML.ignoreWhite = true;
clipXML.onLoad = function (success) {
return(parent.parseActionList(this));
};
clipXML.load(clipLocation);
}
function parseActionList(XMLObj) {
var _local6 = {};
var parent = this;
_local6.onXMLNodeSearch = function (obj) {
var _local4 = obj.node.childNodes;
var _local2 = 0;
while (_local2 < _local4.length) {
parent.clipList[_local2] = new Array();
parent.clipList[_local2].object = _local4[_local2].firstChild.firstChild.attributes.value;
parent.clipList[_local2].action = _local4[_local2].firstChild.firstChild.nextSibling.attributes.value;
parent.clipList[_local2].location = _local4[_local2].firstChild.firstChild.nextSibling.nextSibling.attributes.value;
parent.clipList[_local2].relation = _local4[_local2].firstChild.firstChild.nextSibling.nextSibling.nextSibling.attributes.value;
parent.clipList[_local2].names = new Array();
var _local3 = 0;
while (_local3 < _local4[_local2].firstChild.nextSibling.childNodes.length) {
parent.clipList[_local2].names[_local3] = _local4[_local2].firstChild.nextSibling.childNodes[_local3].attributes.value.split(",");
trace("found these: " + parent.clipList[_local2].names[_local3]);
_local3++;
}
_local2++;
}
var _local5 = {target:this, type:"onActionListLoaded"};
_local5.actions = parent.clipList;
parent.dispatchEvent(_local5);
};
xmlParser.addEventListener("onXMLNodeSearch", _local6);
xmlParser.findXMLNode(XMLObj, "botActions");
}
var dispatchEvent = new Function();
var addEventListener = new Function();
var removeEventListener = new Function();
}
Symbol 42 MovieClip [__Packages.com.D3.NLPBot.Search] Frame 0
class com.D3.NLPBot.Search
{
var memory, lexiconReference, clipReference, extractedArray, returnArray, searchCategories, phraseStructure, actionQueue, conjunctionCount, nextNode, videoVersionToUse;
function Search (lexicon, clips) {
mx.events.EventDispatcher.initialize(this);
memory = new com.D3.NLPBot.Memory();
lexiconReference = lexicon;
clipReference = clips.concat();
}
function getTerminalSymbols(query) {
var _local3 = 0;
query = query.toLowerCase();
if (extractedArray == undefined) {
extractedArray = new Array();
}
while (_local3 <= query.length) {
if ((((query.charCodeAt(_local3) > 122) || (query.charCodeAt(_local3) < 97)) && (query.charCodeAt(_local3) != 46)) || (_local3 == query.length)) {
if (((query.charCodeAt(0) >= 97) && (query.charCodeAt(0) <= 122)) || (query.charCodeAt(_local3) == 46)) {
var _local4 = query.substr(0, _local3 - 0);
if (!checkForIgnoreWords(_local4)) {
if (checkForCensoredWords(_local4)) {
var _local5 = {target:this, type:"onSearchResult"};
var _local6 = new Array("censor");
_local5.searchResult = _local6;
dispatchEvent(_local5);
return(null);
}
if (_local4.length > 1) {
extractedArray.push(_local4);
}
if (_local3 == query.length) {
var _local7 = searchForGlues(extractedArray);
delete extractedArray;
return(_local7);
}
}
}
if (query.charAt(_local3) != undefined) {
return(getTerminalSymbols(query.substr(_local3 + 1, query.length - _local3)));
}
}
_local3++;
}
}
function lexiconSearch(node, assumption) {
var _local3 = assumption;
var _local7 = 0;
if (returnArray == undefined) {
returnArray = new Array();
}
if ((searchCategories == undefined) || (searchCategories.length == 0)) {
searchCategories = new Array();
for (var _local6 in lexiconReference) {
if (((_local6 != "ignoreList") && (_local6 != "glueList")) && (_local6 != "censorList")) {
searchCategories.push(_local6);
}
}
}
while (searchCategories.length > 0) {
for (var _local6 in lexiconReference[_local3]) {
if (lexiconReference[_local3][_local6].length > 0) {
if ((node == _local6) || (node.substr(0, node.length - 1) == _local6)) {
returnArray[0] = _local3;
returnArray[1] = _local6;
} else {
var _local4 = 0;
while (_local4 < lexiconReference[_local3][_local6].length) {
if ((node == lexiconReference[_local3][_local6][_local4]) || ((node.substr(0, node.length - 1) == lexiconReference[_local3][_local6][_local4]) && (node.substr(node.length - 1, node.length) == "s"))) {
returnArray[0] = _local3;
returnArray[1] = _local6;
}
_local4++;
}
}
} else if ((node == _local6) || ((node.substr(0, node.length - 1) == _local6) && (node.substr(node.length - 1, node.length) == "s"))) {
returnArray[0] = _local3;
returnArray[1] = _local6;
}
}
if (returnArray[0] != undefined) {
var _local5 = returnArray;
delete returnArray;
delete searchCategories;
return(_local5);
}
var _local4 = 0;
while (_local4 < searchCategories.length) {
if (searchCategories[_local4] == _local3) {
searchCategories.splice(_local4, 1);
if (searchCategories[0] != undefined) {
_local3 = searchCategories[0];
}
}
_local4++;
}
_local7++;
}
}
function searchQuery(sentence, index) {
phraseStructure = new Array();
actionQueue = new Array();
var _local5 = getTerminalSymbols(sentence);
var _local3 = "verb";
conjunctionCount = 0;
trace(_local5);
var _local4 = 0;
while (_local4 < _local5.length) {
var _local2 = lexiconSearch(_local5[_local4], _local3);
var wordJump = 1;
if (_local5[_local4 + 1] != undefined) {
var _local6 = lexiconSearch(_local5[_local4 + 1], _local3);
if (_local6[1] != _local2[1]) {
nextNode = _local6;
}
} else {
nextNode = new Array();
}
trace("SEARCH SPACE -> " + _local2);
trace("NEXT NODE -> " + nextNode);
if (_local2[0] == "verb") {
if (nextNode[0] == "verb") {
if (_local2[1] != nextNode[1]) {
phraseStructure.object = _local2[1];
phraseStructure.action = nextNode[1];
}
} else if (phraseStructure.action == undefined) {
trace("ASSIGNING ACTION -> " + phraseStructure.action);
phraseStructure.action = _local2[1];
}
_local3 = "noun";
} else if (_local2[0] == "adverb") {
phraseStructure.object = _local2[1];
_local3 = "verb";
} else if (_local2[0] == "noun") {
phraseStructure.object = _local2[1];
_local3 = "verb";
} else if (_local2[0] == "pronoun") {
phraseStructure.location = _local2[1];
_local3 = "verb";
} else if (_local2[0] == "preposition") {
_local3 = "noun";
if ((nextNode[0] == "pronoun") || (nextNode[0] == "noun")) {
if (_local2[1] == "relation") {
if (phraseStructure.object == undefined) {
phraseStructure.object = nextNode[1];
} else if (phraseStructure.relation == undefined) {
phraseStructure.relation = nextNode[1];
} else {
phraseStructure.location = _local2[1];
}
} else {
phraseStructure.location = nextNode[1];
}
}
wordJump = 2;
} else if (_local2[0] == "interjection") {
phraseStructure.action = _local2[1];
} else if (_local2[0] == "conjunction") {
actionQueue.push(phraseStructure);
phraseStructure = new Array();
conjunctionCount++;
} else if (_local2[0] == "propernoun") {
phraseStructure.relation = _local2[1];
}
nextNode = new Array();
_local4 = _local4 + wordJump;
}
trace("OBJECT -> " + phraseStructure.object);
trace("ACTION -> " + phraseStructure.action);
trace("LOCATION -> " + phraseStructure.location);
trace("RELATION -> " + phraseStructure.relation);
actionQueue.push(phraseStructure);
return(searchClips(actionQueue, false));
}
function searchClips(queue, ran) {
var _local6 = new Array();
var _local2 = 0;
var _local3 = 0;
var _local11;
var _local7 = {target:this, type:"onSearchResult"};
_local7.searchResult = new Array();
var _local5 = 0;
while (_local5 < queue.length) {
while (_local2 < clipReference.length) {
if ((queue[_local5].object == clipReference[_local2].object) && (clipReference[_local2].object != undefined)) {
trace("OBJECT VIDEO MATCH");
_local3 = _local3 + 55;
}
if ((queue[_local5].action == clipReference[_local2].action) && (clipReference[_local2].action != undefined)) {
if (((queue[_local5].action == "give") || (queue[_local5].action == "make")) || (queue[_local5].action == "perform")) {
_local3 = _local3 + 5;
} else {
_local3 = _local3 + 30;
}
}
if ((queue[_local5].relation == clipReference[_local2].relation) && (clipReference[_local2].relation != undefined)) {
_local3 = _local3 + 5;
}
if ((queue[_local5].location == clipReference[_local2].location) && (clipReference[_local2].location != undefined)) {
_local3 = _local3 + 10;
}
if ((_local3 >= 30) && (_local3 < 100)) {
_local6.push(new Array(_local2, _local3));
} else if (_local3 == 100) {
var _local8 = memory.memorySearch(clipReference[_local2]);
if (_local8 >= clipReference[_local2].names[0].length) {
memory.clearMemoryBlock(clipReference[_local2]);
_local8 = 0;
}
videoVersionToUse = _local8;
_local5 = 0;
while (_local5 < clipReference[_local2].names.length) {
if (clipReference[_local2].names[_local5].length > 1) {
if ((clipReference[_local2].names[_local5][videoVersionToUse] != "") && (clipReference[_local2].names[_local5][videoVersionToUse] != undefined)) {
trace("adding this video: " + clipReference[_local2].names[_local5][videoVersionToUse]);
_local7.searchResult[_local5] = clipReference[_local2].names[_local5][videoVersionToUse];
}
} else if ((clipReference[_local2].names[_local5][videoVersionToUse] != "") && (clipReference[_local2].names[_local5][videoVersionToUse] != undefined)) {
trace("adding this video: " + clipReference[_local2].names[_local5][0]);
_local7.searchResult[_local5] = clipReference[_local2].names[_local5][0];
}
_local5++;
}
return(dispatchEvent(_local7));
}
_local3 = 0;
_local2++;
}
_local2 = 0;
_local5++;
}
_local6 = sortClipByValue(_local6);
var _local8 = memory.memorySearch(clipReference[_local6[0][0]]);
if (_local8 >= clipReference[_local6[0][0]].names[0].length) {
memory.clearMemoryBlock(clipReference[_local6[0][0]]);
_local8 = 0;
}
videoVersionToUse = _local8;
_local5 = 0;
while (_local5 < clipReference[_local6[0][0]].names.length) {
if (clipReference[_local6[0][0]].names[0].length > 1) {
if ((clipReference[_local6[0][0]].names[_local5][videoVersionToUse] != "") && (clipReference[_local6[0][0]].names[_local5][videoVersionToUse] != undefined)) {
trace("adding videos: " + clipReference[_local6[0][0]].names[_local5][videoVersionToUse]);
_local7.searchResult[_local5] = clipReference[_local6[0][0]].names[_local5][videoVersionToUse];
}
} else if ((clipReference[_local6[0][0]].names[_local5][0] != "") && (clipReference[_local6[0][0]].names[_local5][0] != undefined)) {
trace("adding videos: " + clipReference[_local6[0][0]].names[_local5][0]);
_local7.searchResult[_local5] = clipReference[_local6[0][0]].names[_local5][0];
}
_local5++;
}
return(dispatchEvent(_local7));
}
function sortClipByValue(clipArray) {
var _local5 = false;
var _local2 = clipArray;
var _local3 = _local2.length;
while (_local3 > 0) {
var _local1 = _local3;
_local1 = 0;
while (_local1 < _local3) {
if (_local2[_local1][1] > _local2[_local1 - 1][1]) {
var _local4 = _local2[_local1 - 1];
_local2[_local1 - 1] = _local2[_local1];
_local2[_local1] = _local4;
}
_local1++;
}
_local3--;
}
return(_local2);
}
function searchForGlues(terminals) {
var _local2 = 0;
var _local4 = 0;
while (_local2 < terminals.length) {
while (_local4 < lexiconReference.glueList.length) {
if ((((terminals[_local2] + " ") + terminals[_local2 + 1]) == lexiconReference.glueList[_local4]) || (((terminals[_local2] + " ") + terminals[_local2 + 1]).substr(0, ((terminals[_local2] + " ") + terminals[_local2 + 1]).length - 1) == lexiconReference.glueList[_local4])) {
terminals.splice(_local2, 2, lexiconReference.glueList[_local4]);
}
_local4++;
}
_local4 = 0;
_local2++;
}
return(terminals);
}
function checkForIgnoreWords(word) {
var _local2 = 0;
while ((_local2++) < lexiconReference.ignoreList.length) {
if (word == lexiconReference.ignoreList[_local2]) {
return(true);
}
}
return(false);
}
function checkForCensoredWords(word) {
var _local2 = 0;
while ((_local2++) < lexiconReference.censorList.length) {
if (word == lexiconReference.censorList[_local2]) {
return(true);
}
}
return(false);
}
var dispatchEvent = new Function();
var addEventListener = new Function();
var removeEventListener = new Function();
}
Symbol 43 MovieClip [__Packages.com.D3.NLPBot.Memory] Frame 0
class com.D3.NLPBot.Memory
{
var memoryBlocks;
function Memory () {
memoryBlocks = new Array();
}
function memorySearch(keywordBreakdown) {
trace("searching memory");
var _local2 = 0;
while (_local2 < memoryBlocks.length) {
trace((((((("CURRENT BLOCK: " + memoryBlocks[_local2].object) + "|") + memoryBlocks[_local2].action) + "|") + memoryBlocks[_local2].relation) + "|") + memoryBlocks[_local2].location);
if ((((memoryBlocks[_local2].object == keywordBreakdown.object) && (memoryBlocks[_local2].action == keywordBreakdown.action)) && (memoryBlocks[_local2].relation == keywordBreakdown.relation)) && (memoryBlocks[_local2].location == keywordBreakdown.location)) {
memoryBlocks[_local2].count++;
return(memoryBlocks[_local2].count);
}
_local2++;
}
var _local4 = memoryBlocks.length;
memoryBlocks[_local4] = new Array();
memoryBlocks[_local4].object = keywordBreakdown.object;
memoryBlocks[_local4].action = keywordBreakdown.action;
memoryBlocks[_local4].relation = keywordBreakdown.relation;
memoryBlocks[_local4].location = keywordBreakdown.location;
memoryBlocks[_local4].count = 0;
return(0);
}
function clearMemoryBlock(pattern) {
var _local2 = 0;
while (_local2 < memoryBlocks.length) {
if ((((memoryBlocks[_local2].object == pattern.object) && (memoryBlocks[_local2].action == pattern.action)) && (memoryBlocks[_local2].relation == pattern.relation)) && (memoryBlocks[_local2].location == pattern.location)) {
memoryBlocks.splice(_local2, 1);
}
_local2++;
}
}
}
Symbol 44 MovieClip [__Packages.com.D3.NLPBot.VideoHandler] Frame 0
class com.D3.NLPBot.VideoHandler
{
var firstTimeActive, primaryVideoHolder, netConn, netStream, idleLoopCount, bufferT, currentHolder, startVideoList, idleVideoList, triggerEvents, unknownQueryVideoList, censorVideoList, videoQueue, videoStatus, _isIdle, errorEvent, videoStopEvent, videoPauseEvent, videoPlayEvent, triggerEventObj, startVideoPlaying, _paused, videoInterval, currentVideo, currentTime, currentTrigger;
function VideoHandler (videoObj, buffer) {
mx.events.EventDispatcher.initialize(this);
firstTimeActive = true;
var _local3 = false;
primaryVideoHolder = videoObj;
netConn = new NetConnection();
netConn.connect(null);
netStream = new NetStream(netConn);
idleLoopCount = 0;
if (buffer == undefined) {
netStream.setBufferTime(2);
} else {
netStream.setBufferTime(buffer);
bufferT = buffer;
}
primaryVideoHolder.attachVideo(netStream);
currentHolder = primaryVideoHolder._parent;
init();
}
function init() {
startVideoList = new Array();
idleVideoList = new Array();
triggerEvents = new Array();
unknownQueryVideoList = new Array();
censorVideoList = new Array();
videoQueue = new Array();
videoStatus = "stopped";
_isIdle = true;
errorEvent = {target:this, type:"onError"};
videoStopEvent = {target:this, type:"onStop"};
videoPauseEvent = {target:this, type:"onPause"};
videoPlayEvent = {target:this, type:"onPlay"};
triggerEventObj = {target:this, type:"onVideoTriggerEvent"};
var parent = this;
netStream.onStatus = function (infoObject) {
if (infoObject.code == "NetStream.Play.Stop") {
parent.videoStatus = "stopped";
parent.currentTrigger = undefined;
parent.currentVideo = undefined;
}
};
}
function start() {
startVideoPlaying = true;
}
function getVideoHolder() {
return(currentHolder);
}
function addVideoToQueue(videoName) {
trace("adding video to queue: " + videoName);
videoQueue.push(videoName);
}
function addVideosToQueue(videoNames) {
trace("adding videos to queue: " + videoNames);
var _local2 = 0;
while (_local2 < videoNames.length) {
videoQueue.push(videoNames[_local2]);
_local2++;
}
}
function getVideoQueue() {
return(videoQueue);
}
function clearQueue() {
videoQueue = new Array();
}
function setVidHolder(holderRef) {
primaryVideoHolder = holderRef;
}
function getIdleVideos() {
return(idleVideoList);
}
function addIdleVideo(videoName) {
idleVideoList.push(videoName);
}
function addIdleVideos(videoNames) {
var _local2 = 0;
while (_local2 < videoNames.length) {
idleVideoList.push(videoNames[_local2]);
_local2++;
}
}
function removeIdleVideo(videoName) {
var _local2 = 0;
while (_local2 < idleVideoList.length) {
if (idleVideoList[_local2] == videoName) {
idleVideoList.splice(_local2, 0);
}
_local2++;
}
}
function addUnknownQueryVideo(videoName) {
unknownQueryVideoList.push(videoName);
}
function addUnknownQueryVideos(videoNames) {
var _local2 = 0;
while (_local2 < videoNames.length) {
unknownQueryVideoList.push(videoNames[_local2]);
_local2++;
}
}
function removeUnknownQueryVideo(videoName) {
var _local2 = 0;
while (_local2 < unknownQueryVideoList.length) {
if (unknownQueryVideoList[_local2] == videoName) {
unknownQueryVideoList.splice(_local2, 0);
}
_local2++;
}
}
function getUnknownQueryVideos() {
return(unknownQueryVideoList);
}
function getUnknownQueryVideo() {
var _local2 = Math.round(Math.random() * (unknownQueryVideoList.length - 1));
return(unknownQueryVideoList[_local2]);
}
function addCensorVideo(videoName) {
censorVideoList.push(videoName);
}
function addCensorVideos(videoNames) {
var _local2 = 0;
while (_local2 < videoNames.length) {
censorVideoList.push(videoNames[_local2]);
_local2++;
}
}
function removeCensorVideo(videoName) {
var _local2 = 0;
while (_local2 < censorVideoList.length) {
if (censorVideoList[_local2] == videoName) {
censorVideoList.splice(_local2, 0);
}
_local2++;
}
}
function getCensorVideos() {
return(censorVideoList);
}
function getCensorVideo() {
var _local2 = Math.round(Math.random() * (censorVideoList.length - 1));
return(censorVideoList[_local2]);
}
function addStartVideo(videoName) {
startVideoList.push(videoName);
}
function addStartVideos(videoNames) {
var _local2 = 0;
while (_local2 < videoNames.length) {
startVideoList.push(videoNames[_local2]);
_local2++;
}
}
function removeStartVideo(videoName) {
var _local2 = 0;
while (_local2 < startVideoList.length) {
if (startVideoList[_local2] == videoName) {
startVideoList.splice(_local2, 0);
}
_local2++;
}
}
function getStartVideos() {
return(startVideoList);
}
function getVideoStatus() {
return(videoStatus);
}
function pauseVideo() {
_paused = true;
netStream.pause();
clearInterval(videoInterval);
}
function resume() {
if (_paused) {
netStream.pause();
videoInterval = setInterval(this, "trackVideo", 500);
_paused = false;
}
}
function playVideo() {
if ((videoStatus == "stopped") || (_isIdle)) {
videoStatus = "playing";
_root.videoStill.unloadMovie();
if (arguments.length == 0) {
currentVideo = videoQueue[0];
} else {
currentVideo = arguments[0];
}
trace("PLAYING THIS VIDEO -> " + currentVideo);
if (((currentVideo == null) || (currentVideo == undefined)) || (currentVideo.length == 0)) {
var _local4 = Math.round(Math.random() * (idleVideoList.length - 1));
netStream.close();
if (idleLoopCount < 2) {
netStream.play(idleVideoList[0]);
idleLoopCount++;
} else {
_root.videoStill.loadMovie("idleImage.jpg");
}
_isIdle = true;
} else if (movieExist(currentVideo)) {
idleLoopCount = 0;
netStream.play(currentVideo);
videoQueue.shift();
if (startVideoPlaying == true) {
startVideoPlaying = false;
} else {
_isIdle = false;
}
} else {
dispatchEvent(errorEvent);
}
videoInterval = setInterval(this, "trackVideo", 100);
firstTimeActive = false;
return(undefined);
}
}
function trackVideo() {
currentTime = netStream.time;
checkForTrigger();
if (videoStatus == "stopped") {
clearInterval(videoInterval);
videoStopEvent.videoName = currentVideo;
dispatchEvent(videoStopEvent);
}
}
function isIdle() {
return(_isIdle);
}
function addTriggerEvent(triggerMovieName, timeToTrigger, triggerReference) {
trace("attaching trigger at: " + timeToTrigger);
var _local2 = new Array();
_local2.movieName = triggerMovieName;
_local2.triggerTime = timeToTrigger;
if ((triggerReference != undefined) && (triggerReference != "")) {
_local2.triggerName = triggerReference;
}
triggerEvents.push(_local2);
}
function removeTriggerEvent(triggerName) {
}
function checkForTrigger() {
var _local2 = 0;
while (_local2 < triggerEvents.length) {
if ((currentVideo == triggerEvents[_local2].movieName) && (currentTrigger != currentVideo)) {
if (currentTime >= triggerEvents[_local2].triggerTime) {
trace("sending trigger back");
currentTrigger = currentVideo;
triggerEventObj.triggerName = triggerEvents[_local2].triggerName;
dispatchEvent(triggerEventObj);
}
}
_local2++;
}
}
function getMovieTime() {
return(currentTime);
}
function getMovieName() {
return(currentVideo);
}
function movieExist(movieLocation) {
return(true);
}
function getNetStream() {
return(netStream);
}
function setBufferTime(buffer) {
bufferT = buffer;
}
function getBufferTime() {
return(bufferT);
}
function toString() {
return(currentHolder._name);
}
var dispatchEvent = new Function();
var addEventListener = new Function();
var removeEventListener = new Function();
}