From c3a86f46d07f1bee738f19b8f8cbc5b1e2d362de Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Mon, 18 Apr 2016 14:55:23 -0700 Subject: [PATCH] change the timeout to an interval so it constantly runs --- .../exampleSelfCallingTimeoutNoCleanup.js | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 examples/entityScripts/exampleSelfCallingTimeoutNoCleanup.js diff --git a/examples/entityScripts/exampleSelfCallingTimeoutNoCleanup.js b/examples/entityScripts/exampleSelfCallingTimeoutNoCleanup.js new file mode 100644 index 0000000000..a4a66fc785 --- /dev/null +++ b/examples/entityScripts/exampleSelfCallingTimeoutNoCleanup.js @@ -0,0 +1,56 @@ +// +// exampleSelfCallingTimeoutNoCleanup.js +// examples/entityScripts +// +// Created by Brad Hefta-Gaub on 4/18/16. +// Copyright 2016 High Fidelity, Inc. +// +// This is an example of an entity script which hooks the update signal +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +(function() { + var _this; + + // this is the "constructor" for the entity as a JS object we don't do much here, but we do want to remember + // our this object, so we can access it in cases where we're called without a this (like in the case of various global signals) + ExampleUpdate = function() { + _this = this; + }; + + ExampleUpdate.prototype = { + + timeOutFunction: function() { + var entityID = _this.entityID; + print("timeOutFunction in entityID:" + entityID); + Script.setTimeout(function() { + _this.timeOutFunction(); + }, 3000); + }, + + // preload() will be called when the entity has become visible (or known) to the interface + // it gives us a chance to set our local JavaScript object up. In this case it means: + // * remembering our entityID, so we can access it in cases where we're called without an entityID + // * connecting to the update signal so we can check our grabbed state + preload: function(entityID) { + print("preload - entityID:" + entityID); + this.entityID = entityID; + + print("preload - entityID:" + entityID + "-- calling timeOutFunction()...."); + _this.timeOutFunction(); + }, + + // unload() will be called when our entity is no longer available. It may be because we were deleted, + // or because we've left the domain or quit the application. In all cases we want to unhook our connection + // to the update signal + unload: function(entityID) { + print("unload - entityID:" + entityID); + print("NOTE --- WE DID NOT CALL clear our timeout"); + }, + }; + + // entity scripts always need to return a newly constructed object of our type + return new ExampleUpdate(); +})