- 浏览: 410724 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1131可以利用绑定方法创建具有复合功能的控件 1.被绑定的标签常由 ... -
mozilla中 xul里面 window 等标签使用
2011-03-31 16:50 1159XUL中可以使用的小组件( ... -
mozilla中 xul里面 window 等标签使用
2011-03-31 16:49 1234XUL是一种基于XML的语言,它是一种用来开发Firefox的 ... -
xul叫模块里面的字居中以及叫按钮靠右下角
2011-03-17 13:09 1050<window title="&des ... -
xul标签大全
2011-02-24 21:51 5323一、XUL的元素及属性描 ... -
xul+css+javascript
2011-02-24 21:50 1042<?xml version="1.0" ... -
xul(一)笔记
2011-02-15 09:30 963文章分类:Web前端 这儿是使用 window.openDi ...
相关推荐
为了解决这些问题,本文提出了一种新的干涉条纹计数方法,即利用PASCO科学工作室进行数据采集,并通过Matlab软件进行编程,实现对干涉条纹的自动计数。 PASCO科学工作室配备的高性能光传感器可以实时采集迈克尔逊...
具体实现会涉及更多细节,如如何在栈之间移动盘子,如何跟踪和更新移动计数,以及如何在用户界面上展示这些动作。 总结来说,这个VB6.0小程序的目的是验证一个非递归的汉诺塔解决方案,通过使用栈和循环,避免了...
移动物体追踪计数是计算机视觉领域的一个重要课题,它在智能监控、安全防范、交通管理等领域有着广泛的应用。本示例中的"移动物体追踪计数源码范例"可能基于Darknet框架,这是一个轻量级的深度学习框架,主要用于...
《基于移动终端智能计数监控管理装置》 在当今信息化高度发达的时代,移动终端已经渗透到我们生活的方方面面,包括在电信设备的管理中也发挥着重要作用。本资料主要探讨了一种基于移动终端的智能计数监控管理装置,...
在C语言中,可以通过比较元素来实现排序,每次比较时增加比较计数,元素移动则增加移动计数。例如,代码中的`InsertSort`函数展示了如何统计比较和移动次数。 ### 2. 希尔排序 希尔排序是插入排序的改进版,通过...
分享一下关于干涉条纹处理的CVI程序,内部有程序相关说明,涉及CVI上位机设计及通讯,MODBUS协议,也是工程应用中必备知识,该程序已经经过验证,能够完成相关功能。可以供大家好好学习CVI知识!
`BeforeSort`函数用于重置比较和移动计数。`Less`函数比较两个元素,`Swap`函数交换元素,`BubbleSort`实现冒泡排序,`QSort`辅助函数和`QuickSort`实现快速排序。 通过对比不同输入数据,我们可以分析冒泡排序和...
《基于移动终端智能计数监控管理系统》 在现代电信行业中,智能计数监控管理系统已经成为提升运营效率、优化网络性能的关键工具。本系统充分利用了移动终端的便捷性,为电信设备的管理和监控提供了全新的解决方案。...
- 对于大多数移动硬盘而言,大约半年左右才会出现一个+1的重映射扇区计数。如果短时间内频繁出现这种情况,则需要引起重视。 5. **应对措施**: - 如果监测到重映射扇区计数超过安全阈值,用户应该立即备份数据...
- **结构体 `node_struct`**:用于存储每个蛇身节点的方向和移动计数。 - `direction`:表示节点的移动方向。 - `cnt`:表示节点移动的次数。 - **结构体 `SNAKE`**:用于存储整个贪吃蛇的数据。 - `Head_X` 和 ...
《电信设备:基于智能移动终端的种粒计数计量装置》 在当今信息化社会,智能移动终端已经深入到人们生活的各个领域,不仅用于通讯、娱乐,还在各行各业中发挥着重要作用。在电信行业中,智能移动终端的应用更是...
可以使用光流法来估计像素级别的运动信息,结合帧间差异来追踪车辆的移动。另外,背景减除法也是一种常用手段,通过构建背景模型,突出运动的车辆。 5. **计数算法**:在检测到车辆后,如何准确计数是一个挑战。...
机械式纸张计数器通常使用一组齿轮和杠杆来模拟纸张的物理移动。当纸张通过机器时,一个边缘传感器会检测纸张,并启动一个计数装置。这个装置可能包括一个旋转的齿轮,每经过一次完整的旋转,就代表经过了一张纸。...
标题中的“电信设备-一种基于移动设备的牛奶体细胞计数方法及系统”揭示了这个技术主题涉及到电信设备的应用,特别是在农业或者食品检测领域。移动设备在这里被用作工具,帮助进行牛奶体细胞计数,这是一个关键的乳...
利用PLC高速计数模块进行轴定位,成为了许多工业设备的核心技术之一。本文将深入探讨轴定位的原理、高速计数模块在轴定位中的作用以及实际应用中的控制策略。 首先,轴定位的基本原理涉及到时间速度图的计算与控制...
### 科学计数法向一般数字的转化(C语言) #### 概述 本文将详细介绍如何使用 C 语言将科学计数法表示的数字转换为常规格式的数字。科学计数法是一种数学上的表示方法,它将一个数表示为一个 1 到 10 之间的数字...
帧差法通过比较连续两帧之间的差异来识别移动的物体,而背景减除法则是建立一个静态背景模型,然后将每一帧与这个背景模型进行比较,找出与背景不符的区域,从而识别出行人。这两种方法可以有效地滤除静态背景干扰,...