javascript键盘控制操作,送给美女的

来源:互联网 发布:淘宝搞笑评价 编辑:程序博客网 时间:2024/05/18 16:19

<script>
//document.onkeydown=keydown
//
document.onkeyup=keyup

var $=function(objId){
    
return document.getElementById(objId);
}


Array.prototype.remove
=function(keypos)
{
    
var j=0;
    
for(var i=0;i<this.length;i++)
    
{
        
if(this[i]!=keypos)
        
{
            
this[j]=this[i];
            j
=j+1;
        }

        
    }

    
this.pop();
}


function KeyControl()
{
    
this.Active=true;
    
this.speed=10;
    
this.timecontrol=50;
    
this.KeyCode=new Array();
    
this.a="aaa";
    
this.ControlObject=new Array();
    
this.obj=null;
    
//alert(this.a);
    this.direct=new Array(this.top,this.left,this.right,this.down,this.topleft,this.downleft,this.topright,this.downright);
    
//alert(this.direct[0].arrKey);
}


KeyControl.prototype
={
    
    top:
{name:"top",arrKey:new Array('38'),xpos:"",ypos:"-"},
    left:
{name:"left",arrKey:new Array('37'),xpos:"-",ypos:""},
    right:
{name:"right",arrKey:new Array('39'),xpos:"+",ypos:""},
    down:
{name:"down",arrKey:new Array('40'),xpos:"",ypos:"+"},
    topleft:
{name:"topleft",arrKey:new Array('38','37'),xpos:"-",ypos:"-"},
    downleft:
{name:"downleft",arrKey:new Array('37','40'),xpos:"-",ypos:"+"},
    topright:
{name:"topright",arrKey:new Array('38','39'),xpos:"+",ypos:"-"},
    downright:
{name:"downright",arrKey:new Array('39','40'),xpos:"+",ypos:"+"},
    nocontrol:
"nocontrol"
    
}


KeyControl.prototype.keyup
=function()
{
    
var keypos=event.keyCode;
    
this.KeyCode.remove(keypos);
    
//alert(this.KeyCode.length);
}




KeyControl.prototype.Add
=function(objId)
{
    
this.ControlObject[this.ControlObject.length]=objId;
}


KeyControl.prototype.Remove
=function(objId)
{
    
this.ControlObject.remove(objId);
}


KeyControl.prototype.Direct
=function()
{
    
var stack=null;
    
//alert(this.KeyCode.length);
    for(var i=this.KeyCode.length-1;i>=0;i--)
    
{
        
//alert(this.KeyCode.length);
        if(stack==null)
        
{
            
for(var j=0;j<4;j++)
            
{
                
//alert(this.direct[j].arrKey[0]);
                //alert(this.KeyCode[i]);
                if(parseInt(this.KeyCode[i])==parseInt(this.direct[j].arrKey[0]))
                
{
                    stack
=this.direct[j].arrKey[0];
                    
break;
                }

            }

        }

        
else
        
{
            
for(var j=4;j<this.direct.length;j++)
            
{
                
for(var k=0;k<this.direct[j].arrKey.length;k++)
                
{
                    
if(parseInt(this.KeyCode[i])==parseInt(this.direct[j].arrKey[k]))
                    
{
                        
if(k==0&&parseInt(stack)==parseInt(this.direct[j].arrKey[1]))
                        
{
                            
return this.direct[j];
                            
break;
                        }

                        
else if(k==1&&parseInt(stack)==parseInt(this.direct[j].arrKey[0]))
                        
{
                            
return this.direct[j];
                            
break;
                        }

                    }

                }

            }

        }

    }

    
if(stack!=null)
    
{
        
for(var j=0;j<4;j++)
            
{
                
if(parseInt(stack)==parseInt(this.direct[j].arrKey[0]))
                
{
                    
return this.direct[j];
                    
break;
                }

            }

    }

    
else
    
{
        
return null;
    }

}


KeyControl.prototype.Move
=function()
{
    
var _direct=this.Direct();
    
    
    
if(_direct==null)
    
{
        
        
return false;
    }

    
    
if(_direct.xpos.length>0)
    
{
        
if(_direct.xpos=="+")
        
{
            
var objNodes=this.ControlObject;
            
for(var i=0;i<objNodes.length;i++)
            
{
                
if($(objNodes[i]).style.left=="")
                
{
                    $(objNodes[i]).style.left
=0;
                }

                $(objNodes[i]).style.left
=parseInt($(objNodes[i]).style.left)+5;                
            }

        }

        
else
        
{
            
var objNodes=this.ControlObject;
            
for(var i=0;i<objNodes.length;i++)
            
{
                
if($(objNodes[i]).style.left=="")
                
{
                    $(objNodes[i]).style.left
=0;
                }

                $(objNodes[i]).style.left
=parseInt($(objNodes[i]).style.left)-5;                
            }

        }

    }

    
if(_direct.ypos.length>0)
    
{
        
if(_direct.ypos=="+")
        
{
            
//objNodes[i].top=parseInt(objNodes[i].style.top)+5;
            var objNodes=this.ControlObject;
            
for(var i=0;i<objNodes.length;i++)
            
{
                
if($(objNodes[i]).style.top=="")
                
{
                    $(objNodes[i]).style.top
=0;
                }

                $(objNodes[i]).style.top
=parseInt($(objNodes[i]).style.top)+5;                
            }

        }

        
else
        
{
            
var objNodes=this.ControlObject;
            
for(var i=0;i<objNodes.length;i++)
            
{
                
if($(objNodes[i]).style.top=="")
                
{
                    $(objNodes[i]).style.top
=0;
                }

                $(objNodes[i]).style.top
=parseInt($(objNodes[i]).style.top)-5;                
            }

        }

    }

}


KeyControl.prototype.keydown
=function()
{
    
var keypos=event.keyCode;
    
var flag=true;
    
for(var i=0;i<this.KeyCode.length;i++)
    
{
        
if(keypos==this.KeyCode[i])
        
{
            flag
=false;
            
break;
        }

    }

    
if(flag)
    
{
        
this.KeyCode[this.KeyCode.length]=keypos;
    }

    
//alert(this.KeyCode.length);
    //objTemp.keydown.call(objTemp);
}


Function.prototype.bind
=function()
{
    
var   self   =   this;   
   
var   arg   =   arguments;   
   
return   function(){   
   self.apply(
null,arg);   
   }
   
}


var objTemp=new KeyControl();
objTemp.Add(
"div1");
var f=function()
{
    objTemp.keydown();
}


var f1=function()
{
    objTemp.keyup();
}


f2
=function()
{
    objTemp.Move();
    window.setTimeout(
"f2()",200);
}


document.onkeydown
=f;
document.onkeyup
=f1;

f2();


</script>

<div id="div1" style="position:absolute;">lxy</div>