cacert-testmgr/external/ZendFramework-1.9.5/externals/dojo/demos/flashCards/src/Teacher.js

59 lines
1.6 KiB
JavaScript
Raw Permalink Normal View History

dojo.provide("demos.flashCards.src.Teacher");
dojo.require("dijit._Widget");
dojo.require("dijit._Templated");
dojo.require("dojox.timing.Sequence");
dojo.declare("demo._TeacherBehavior", null, {
constructor: function(){
this._batEyes = [
{ func: [dojo.hitch(this,"angry",true), this], pauseAfter:200 },
{ func: [dojo.hitch(this,"blink",45), this], repeat: 3, pauseAfter: 100 },
{ func: [dojo.hitch(this,"angry",false), this], pauseBefore:200 }
];
},
bat: function(){
this.actions.go(this._batEyes);
}
});
dojo.declare("demo.Teacher", [dijit._Widget, dijit._Templated, demo._TeacherBehavior], {
templatePath: dojo.moduleUrl("demos.flashCards.src","Teacher.html"),
constructor: function(args, node){
dojo.mixin(this, args);
this.actions = new dojox.timing.Sequence({});
},
frown: function(/* Boolean */on){
var n = this.innerNode;
dojo[(on ? "addClass" : "removeClass")](n,"teacherBeingAngry");
},
blink: function(closeDuration, forced){
if(this._blinking && !forced){ clearTimeout(this._blinking); }
dojo.addClass(this.innerNode, "teacherBlinking");
this._blinking = setTimeout(dojo.hitch(this,function(){
dojo.removeClass(this.innerNode,"teacherBlinking");
}), closeDuration || 275);
},
speak: function(speach, timeout){
if (!timeout) { timeout = 5000; }
this.teacherBubble.innerHTML = speach;
dojo.addClass(this.teacherBubbleOuter, "teacherSpeaking");
if (this._timeout) { clearTimeout(this._timeout); }
this._timeout = setTimeout(dojo.hitch(this, function(){
dojo.removeClass(this.teacherBubbleOuter, "teacherSpeaking")
}), timeout);
}
});