- 浏览: 399653 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (347)
- java基础 (58)
- ajax (10)
- s2sh (10)
- 版本控制 (4)
- 数据库 (34)
- 服务器 (4)
- 开发工具 (8)
- javascript (15)
- soockte (5)
- ext (2)
- 环境搭建 (7)
- struts2 (9)
- 找工作中的面试技巧 (2)
- 承接网站零活 (0)
- JNI+JONSE+OGNL (8)
- 性能优化 (4)
- Android开发 (5)
- xul (8)
- jquery (2)
- 线程 (3)
- jsp+jdbc (7)
- servlet (2)
- java对xml操作 (1)
- IO流的操作 (10)
- 项目开发前配置 (1)
- css (0)
- 上传、下载 (2)
- 知识探讨 (2)
- html (2)
- HQL (0)
- 工作技巧 (1)
- IT (1)
- Hibernate杂谈 (10)
- Spring杂谈 (35)
- DWR (5)
- JUnit测试 (3)
- EasyMock测试web (1)
- ibatis (6)
- maysql (5)
- C++ (0)
- 正则表达式(解剖) (1)
- 密码安全 (2)
- 上传 (1)
- socket (1)
- jni(java与c++结合) (1)
- jdk版本问题 (0)
- tomcat版本问题 (5)
- linux基本命令(初学) (7)
- linux项目发布 (1)
- 3年的经验总结 (1)
- 加解密 (2)
- 高级java阶段 (2)
- java内存分区 (1)
- 浏览器 (1)
- 职业规划 (1)
- 管理 (5)
- java语音 (1)
- SSH (1)
- jsp (3)
- extjs (1)
- uml (2)
- 加密 (1)
- web (2)
- Ant (1)
- 自述 (1)
- Linux (1)
- ssh源码解剖 (1)
- 代码优化 (1)
- 设计模式 (0)
- xml (2)
- JOSN (1)
- scala (0)
- hadoop (0)
- spark (0)
- hana (1)
- shior (1)
- java Word (6)
- java PDF (4)
- java Excel (0)
最新评论
-
高级java工程师:
ztao2333 写道谢谢。收藏下这个总结。呵呵
温习jdk和tomcat -
ztao2333:
大写的,不是大学的
温习jdk和tomcat -
ztao2333:
谢谢。收藏下这个总结。
温习jdk和tomcat -
the_small_base_:
你好,可以提供调用方法吗?需要的Jar,能发下源码吗?谢谢
java实现语音 -
高级java工程师:
文思涌动 写道楼主新年好。可否再传一遍给我,我没有收到, 不清 ...
s2sh整合
测试一下自己
方案及目的:
虽然是个很小的程序,但是里面凝会这思想,首先这个程序分为2种方案:
方案其一:
执行方案一,如果在游戏中玩家打错题程序将不提示任何错误继续游戏,如果在规定的30内答对10道题,游戏将终止并且给出像应的反馈(例如:题数,时间)。
方案其二:
执行方案二,如果在游戏中玩家答题出现错误,这时候玩家将无法继续游戏必须从新开始。
目的:
虽然是个小的游戏,但是从很多方面上是很有价值的,首先可以锻炼一个人的思维,其次可以锻炼一个人的注意力,最后可以锻炼一个人的速度和技巧。
程序功能:
1.游戏模块可以随处拖拉(包括:鼠标左键点击拖拉、鼠标右键点击拖拉、鼠标滑
轮滚动拖拉)。
2.开始之后将倒计时30秒,并执行方案一,同时可以取消游戏。
3. 点击,重置、方案二 确定将执行方案二,取消将从新开始。
4.点击开始出现随机数(这个随机数是2个随机数之和),通过第一个数和第二个
数的和比较随机数,如果相等则继续,并继续游戏。(方案二则直接退出游戏)。
5.如果30秒之内10次正确则推出游戏,提示花了多少时间及答对题数。
6. 如果超过30秒未通过,则提示答对多少个花费多长时间
功能实现:
首先功能实现:使用了css做样式 xul做页面 javascript做业务处理。
1.我是这样做的,首先我先总结程序的功能、思路、如何实现。
2. 接下来就开始实现了,最初是这样的我先将两个输入框数据获取,通过 documente.getElementByid的方式进行获取.
3.我实现求和(第一个数与第二个数相加的和) 定义3个数 ,第一个和第二个可以直接获得,第三个是第二个的和。
4.求随机数,通过Math.random()*10 来获得随机数,随机数获得之后求随机数之和
parseInt(Math.random()*10)+parseInt(Math.random()*10),因为默认是字符串类型,所以要转 换成int类型,所以用parseInt();
5.通过计数器定义var total=0;var righttotal=0; 每执行一次+1,一方面来计算时间,
一方面来计算所答对的题数。
6.使用disabled 属性,他其值可以是true或false,若为true表示按钮被禁用,反之
为启 ,用他来控制开始。
7.拖动,通过鼠标移动,开始拖动,停止拖动来控制模块,同时重要的一点要在css样式中固定样式。
8.游戏背景采用图片,游戏小模块也采用图片的形式展现。
XUL 实现:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://desktopxframe/content/bindings/workareaframe/workarea.css" type="text/css"?>
<?xml-stylesheet href="main.css" type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml"
title=""
onload="">
<script type="application/x-javascript" src="main.js"/>
<!-- your xul code -->
<vbox id="zfx">
<box id="xafx">
<box>
<textbox id="shur1" disabled="true"/>+ <textbox id="shur2" disabled="true"/>=<textbox id="shur3" disabled="true"/>
</box>
<box>
<button label="开始/方案1" oncommand='startNumberSum(this)'/>
<button id="numBtn10" label="方案2/重新" oncommand='pause()'/>
<button id="numBtn0" disabled="true" label="0" oncommand='startNumber(this)'/>
</box>
<hbox pack="start" >
<button id="numBtn1" disabled="true" label="1" oncommand='startNumber(this)'/>
<button id="numBtn2" disabled="true" label="2" oncommand='startNumber(this)'/>
<button id="numBtn3" disabled="true" label="3" oncommand='startNumber(this)'/>
</hbox>
<hbox pack="center" >
<button id="numBtn4" disabled="true" label="4" oncommand='startNumber(this)'/>
<button id="numBtn5" disabled="true" label="5" oncommand='startNumber(this)'/>
<button id="numBtn6" disabled="true" label="6" oncommand='startNumber(this)'/>
</hbox>
<hbox pack="end" >
<button id="numBtn7" disabled="true" label="7" oncommand='startNumber(this)'/>
<button id="numBtn8" disabled="true" label="8" oncommand='startNumber(this)'/>
<button id="numBtn9" disabled="true" label="9" oncommand='startNumber(this)'/>
</hbox>
</box>
<button id="numBtn11" label="帮助按钮" onclick='write();'/>
</vbox>
</window>
javascript实现:
var total=0;
var righttotal=0;
var fz=0;
var total1;
var totaltime;
var dom1=0;
var date =new Date();
//点击1-9按钮 将按钮值放入 第一 第二输入框 将2个输入框的数相加求和并和第三个框的数进行比较。
function startNumber(filed){
var value = document.getElementById("shur1").value;
if(value==null||value==""){
document.getElementById("shur1").value =filed.label;
}else{
document.getElementById("shur2").value =filed.label;
total=total+1;
var nuone = document.getElementById("shur1").value ;
var nutwo = document.getElementById("shur2").value ;
var nothree =parseInt(nutwo) + parseInt(nuone);
var shur3value = document.getElementById("shur3").value;
if(nothree==shur3value){
document.getElementById("shur1").value ="";
document.getElementById("shur2").value ="";
righttotal=righttotal+1;
//如果10道题正确
if(righttotal ==10)
{
var a = new Date();
totaltime=a.getTime();
//alert(totaltime+","+total1)
dom1=(totaltime-total1)/1000;
alert(dom1+"秒=答题"+righttotal);
alert("恭喜通过将从新开始");
window.location.href=window.location.href;
}
}else{
document.getElementById("shur1").value ="";
document.getElementById("shur2").value ="";
if(fz==1) {
alert("很抱歉您答错了!重新开始吧");
window.location.href=window.location.href;
}
}
writerandom();
}
}
//获得随机数之和,写进第三个文本框
function writerandom(){
var getrandom=parseInt(Math.random()*10)+parseInt(Math.random()*10);
document.getElementById("shur3").value =getrandom;
}
//点击oppen弹出对话框把随机数之和写进文本框,开始计时30秒
function startNumberSum(){
//
total1=date.getTime();
fz=-1;
var getrandom=parseInt(Math.random()*10)+parseInt(Math.random()*10);
if(confirm("30秒内10道题,您确定挑战吗?"))
{
for(var i=0; i<10; i++)
{
document.getElementById("numBtn"+i).setAttribute("disabled","false");
}
document.getElementById("shur3").value =getrandom;
//30秒后执行 startTimer()方法.
setTimeout("startTimer()",30000);
}
}
//30秒后执行提示,并从新开始
function startTimer(){
alert("很抱歉时间已到从新开始");
window.location.href=window.location.href;
// alert(total+"秒=答题"+righttotal);
// if(righttotal == 10){
// alert("恭喜通过");
// window.location.href=window.location.href;
// }else{
// alert("时间到");
//
// }
}
//模型移动
function getRealStyle(obj,s) {
var style;
if (window.getComputedStyle) {//W3C DOM
style=window.getComputedStyle(obj,null);
} else if (obj.currentStyle) {//IE
style=obj.currentStyle;
}
return style[s];
}
function innerSize() {
return {
width:document.documentElement.clientWidth,
height:document.documentElement.clientHeight
};
}
window.onload=function () {
var oDiv=document.getElementById("xafx");
addEvent(oDiv,'mousedown',function (evt) {
evt.preventDefault();
this.flag=true;
this.savedMousePos={
x:evt.layerX,
y:evt.layerY
};
});
addEvent(oDiv,'mousemove',function (evt) {
evt.preventDefault();
if (!this.flag) {
return;
}
this.style.left=evt.clientX-this.savedMousePos.x+"px";
this.style.top=evt.clientY-this.savedMousePos.y+"px";
});
addEvent(document,'mouseup',function (evt) {
oDiv.flag=false;
});
};
function addEvent(obj,evt,fn) {
if (obj.addEventListener) {
if (String(window.opera)=="[object Opera]") {
obj.addEventListener(evt,function (evt) {
evt.layerX=evt.offsetX;
evt.layerY=evt.offsetY;
fn.call(this,evt);
},false);
} else {
obj.addEventListener(evt,fn,false);
}
obj.addEventListener(evt,fn,false);
return obj;
}
if (!obj.functions) obj.functions={};
if (!obj.functions[evt])
obj.functions[evt]=[];
//obj.functions["mousedown"]=[]
var functions=obj.functions[evt];
for (var i=0;i<functions.length;i++) {
if (functions[i]===fn) return obj;
}
functions.push(fn);
//fn.index=functions.length-1;
if (typeof obj["on"+evt]=="function") {
//alert(obj["on"+evt]);//当这一行执行到时,obj["on"+evt] 就是handler
//alert(obj["on"+evt]==handler);
if (obj["on"+evt]!=handler)
functions.push(obj["on"+evt]);
}
obj["on"+evt]=handler;
return obj;
}
function handler() {//哪个事件发生了?
//对event对象标准化
var evt=fixEvt(window.event);
var evtype=evt.type;
var functions=this.functions[evtype];
for (var i=0;i<functions.length;i++) {
if (functions[i]) functions[i].call(this,evt);
}
}
function fixEvt(evt) {
evt.target=evt.srcElement;
if (evt.type=="mouseover")
evt.relatedTarget=evt.fromElement;
else if ("mouseout"==evt.type)
evt.relatedTarget=evt.toElement;
evt.stopPropagation=function () {
evt.cancelBubble=true;
};
evt.preventDefault=function () {
evt.returnValue=false;
};
evt.layerX=evt.offsetX;
evt.layerY=evt.offsetY;
evt.pageX = evt.clientX+document.documentElement.scrollLeft;
evt.pageY = evt.clientY+document.documentElement.scrollTop;
return evt;
}
//第二套方案/从新开始
function pause(){
fz=1;
var getrandom=parseInt(Math.random()*10)+parseInt(Math.random()*10);
var r=confirm("确认执行第二种方案,取消则从新开始")
if (r==true)
{
for(var i=0; i<10; i++)
{
document.getElementById("numBtn"+i).setAttribute("disabled","false");
}
document.getElementById("shur3").value =getrandom;
setTimeout("startTimer()",30000);
//document.write("从新开始!")
}
else
{
window.location.href=window.location.href;
}
}
//帮助按钮的
function write(){
if(confirm("温馨提示:方案一:30秒时间到或答对10道题才会结束,方案二:只要错误就结束游戏")){
document.getElementById('numBtn11').style.display='none'
}else{
document.getElementById('numBtn11').style.display='none'
}
}
css实现:
#zfx{
background:url(chrome://work/content/image/1.jpg);
min-width:900px;
min-height:900px;
}
#xafx{
background:url(chrome://work/content/image/1.jpg);
width:270px;
height:145px;
position:fixed;
top:100px;
left:100px;
}
#an{
min-height:250px;
min-width:200px;
}
#shur1{
min-height:25px;
max-width:78px;
}
#shur2{
min-height:25px;
max-width:78px;
}
#shur3{
min-height:25px;
max-width:78px;
}
#numBtn11{
min-height:25px;
max-width:78px;
}
//如果想取整数时间Math.round();dom1=Math.round((totaltime-total1)/1000);将原来的变成这样。
效果图 请看附件:
发表评论
-
XBL绑定组建的实例
2011-04-07 13:55 1094可以利用绑定方法创建具有复合功能的控件 1.被绑定的标签常由 ... -
mozilla中 xul里面 window 等标签使用
2011-03-31 16:50 1090XUL中可以使用的小组件( ... -
mozilla中 xul里面 window 等标签使用
2011-03-31 16:49 1203XUL是一种基于XML的语言,它是一种用来开发Firefox的 ... -
xul叫模块里面的字居中以及叫按钮靠右下角
2011-03-17 13:09 1020<window title="&des ... -
xul标签大全
2011-02-24 21:51 5262一、XUL的元素及属性描 ... -
xul+css+javascript
2011-02-24 21:50 1002<?xml version="1.0" ... -
xul(一)笔记
2011-02-15 09:30 939文章分类:Web前端 这儿是使用 window.openDi ...
相关推荐
一种基于PASCO和Matlab的干涉条纹计数方法.pdf
移动物体追踪计数
分享一下关于干涉条纹处理的CVI程序,内部有程序相关说明,涉及CVI上位机设计及通讯,MODBUS协议,也是工程应用中必备知识,该程序已经经过验证,能够完成相关功能。可以供大家好好学习CVI知识!
一般来说 ,日立硬盘的重映射扇区计数在36 为极限,一般移动硬盘半年左右才出现一个+1, 你扫描后全绿,说明厂家的预留扇区已经覆盖坏区了, 一旦出现重映射扇区计数过量, 出现“红”,超过极限,硬盘容量也会...
电信设备-基于移动终端智能计数监控管理装置.zip
电信设备-基于移动终端智能计数监控管理系统.zip
通过位置调节驱动接口(6 )控制水平X 、Y 方向移动,完成染色血液细胞载片内的白细胞计数。该方法不仅可快速准确地对血液显微图像中白细胞个数进行自动统计计数,对其他需以图像为目标的图像分析与统计应用也适用。
电信设备-基于智能移动终端的种粒计数计量装置.zip
贪吃蛇小游戏,基本操作移动计数功能都可实现,还有变速功能。
该表格始于2018年7月,早期版本的求解器具有更高的移动计数,我认为我第一次求解5x5x5时已超过400个移动。 解决2x2x2大约需要9个步,而解决3x3x3大约需要20个步,但是我不在那些求解器上工作,因此我没有在下表中...
利用PLC高速计数模块进行轴定位:轴定位原理 常一个定位命令要求轴上零件移动到另一位置时,模块先计算一个理论的时间速度图。 在以旋转编码器作位置反馈的闭环控制方式中,每一时刻,时间位置图上的位置为基准值...
电信设备-一种基于移动设备的牛奶体细胞计数方法及系统.zip
一类Piece定义每个片游戏的“位置/移动计数/颜色/串。 抽象类TypeCross定义了棋子如何在棋盘上移动。 十字型件(Bishop / Queen / Rock)将其扩展。 抽象类TypeJump定义了棋子在棋盘上的移动方式。 跳跃式棋子...
这个是一个屏幕点击计数的程序,里面用到了移动开发的各项计数,包括点击事件,声音播放,图片切换等等,是个很好的入门例子。 可以下载看一看,如果觉得里面的技术有用,但是又不会实现的话,需要源码的可以联系我...
基于移动计数的修剪 查看修剪 单数扩展 有关国际象棋编程的信息 谢谢 弗拉基米尔·梅德韦杰夫(GladKo) 法比恩·莱图兹(Fabien Letouzey),水果和煎蛋 罗伯特·凯特(Robert Hyatt) 柜台版权(c)Vadim ...
分数存储(移动计数/骰子计数/路障捕获/玩家捕获) 有图片的规则 变更日志 0.6alpha 为用户设置添加了离线存储 0.5 添加赢家/输家面板 更全面的用户界面 将元素添加到视图中的文档 仅设置当前用户的回合和骰子...
虽然这意味着总移动计数会很长,但它非常快。用法该代码将一系列人脸作为输入。 编译java代码,然后运行 java PocketSolver.java < inputcubes/testcube3.txt或提供的任何测试立方体。 然后代码应该输出一个笨拙...
需求分析是对用户需求的真正明确,是对要解决的问题的彻底理解。在解决问题之前要理解问题,只有真正的理解问题才能更好的解决问题。... 块移动(行块,列块移动),删除 3) 可正确存盘、取盘; 4)可以正确显示行数
来自tCubed的Chrome中的多彩魔方! ...有关更多信息,请访问http://www.PlaytCubed.com/games/rubiks-cube版本历史记录1.0.1-1.0.2-固定了NAN移动计数1.0.0-初始 支持语言:English (United States)
主要介绍了使用OpenCV实现道路车辆计数的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧