home *** CD-ROM | disk | FTP | other *** search
- class keyboardPackage.ScreenKeyboard
- {
- var MC;
- var keyboard;
- var usedKeys;
- function ScreenKeyboard(_MC)
- {
- this.MC = _MC;
- this.keyboard = keyboardPackage.Keyboard.getInstance();
- this.usedKeys = new Array();
- this.setKeys();
- }
- function onPress(key)
- {
- this.key_onPress(this.usedKeys[key],key);
- }
- function onRelease(key)
- {
- this.key_onRelease(this.usedKeys[key],key);
- }
- function key_onPress(tMC, key)
- {
- tMC.gotoAndStop("pressed");
- }
- function key_onRelease(tMC, key)
- {
- tMC.enabled = true;
- tMC.gotoAndStop("released");
- }
- function mouse_onRollOver(tMC, key)
- {
- this.usedKeys[key].isMouse = false;
- tMC.gotoAndStop("mouseOver");
- }
- function mouse_onRollOut(tMC, key)
- {
- tMC.gotoAndStop("released");
- this.usedKeys[key].isMouse = false;
- }
- function mouse_onPress(tMC, key)
- {
- tMC.gotoAndStop("pressed");
- this.usedKeys[key].isMouse = true;
- this.keyboard.onKeyDown(key);
- }
- function mouse_onRelease(tMC, key)
- {
- this.keyboard.onKeyUp(key);
- }
- function setKeys()
- {
- var keyMC;
- var keyMCchar;
- var keyMCcode;
- var tMC;
- var letterLabel;
- var numpadkey;
- for(var name in this.MC)
- {
- if(this.MC[name] instanceof MovieClip && name.indexOf("key") != -1)
- {
- keyMC = this.MC[name];
- keyMCchar = name.substring(name.lastIndexOf("_") + 1).toUpperCase();
- numpadkey = keyMCchar.split("NUM")[1];
- if(!isNaN(numpadkey) && numpadkey.length == 2 && numpadkey != undefined)
- {
- keyMCchar = "NUM" + String.fromCharCode(Number(numpadkey));
- }
- if(!isNaN(Number(keyMCchar)) && keyMCchar.length > 1)
- {
- keyMCchar = String.fromCharCode(Number(keyMCchar));
- }
- keyMCcode = this.keyboard.getKeyCode(keyMCchar);
- this.usedKeys[keyMCcode] = keyMC;
- keyMC.onPress = system.Delegate.create(this,this.mouse_onPress,keyMC,keyMCcode);
- keyMC.onRelease = system.Delegate.create(this,this.mouse_onRelease,keyMC,keyMCcode);
- keyMC.onRollOver = system.Delegate.create(this,this.mouse_onRollOver,keyMC,keyMCcode);
- keyMC.onRollOut = keyMC.onReleaseOutside = system.Delegate.create(this,this.mouse_onRollOut,keyMC,keyMCcode);
- letterLabel = keyMC.letter.label;
- letterLabel.autoSize = "center";
- if(keyMCchar.length > 1)
- {
- if(numpadkey)
- {
- keyMCchar = keyMCchar.split("NUM")[1];
- }
- else
- {
- keyMCchar = keyMCchar.substr(0,1) + keyMCchar.substr(1).toLowerCase();
- }
- }
- letterLabel.text = keyMCchar;
- }
- }
- }
- }
-