快速业务通道

计算器,按照运算法则运算

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-12



点击浏览该文件
http://www.Flash8.net/bbs/UploadFile/2005-2/200521317347540.swf
这是我做的一个,模仿Windows自带的计算器,支持快捷键,进制转换。尤其是按运算法则运算(到现在,我也没见过这么好的Flash计算器,支持一下啦! 我的计算器类: dynamic class Counter {
//输出的文字,是格式化了的,例如分组,科学记数法...
var output:String = "0";
//计算的文字,纯数字
var value:String = "0";
//是否分组
var grouping:Boolean = false;
//监听器用
var _listeners:Array = [];
//统计用
var data:Array = undefined;
var datas:Object = {Ave:undefined, Ave2:undefined, Sum:undefined, Sum2:undefined, S:undefined, S2:undefined};
//算式储存
private var count:Array = [];
//是否重新输入数字
private var isnew:Boolean = false;
//储存数字
private var remember:Number = undefined;
//暂时数字储存
private var nrem:String;
//暂时运算符储存
private var nsign:String = undefined;
//数制
private var systems:Number = 10;
//单位
private var units:Number = 0;
//括号中的
private var inbracket:Array = [];
//构造函数
function Counter(key:Boolean) {
if (key == undefined) {
key = true;
}
if (key) {
Key.addListener(this);
}
}
//清除键
function C() {
//清除所有数据
value = "0";
count = [];
isnew = true;
nsign = undefined;
CounterMessage("C");
}
//清空键
function CE() {
value = "0";
isnew = true;
CounterMessage("CE");
}
//BackSpace
function BackSpace() {
value = value.slice(0, -1);
if (value.length == 0) {
value = "0";
}
CounterMessage("BackSpace");
}
//输入数字
function numbers(n) {
n = n.toString().toUpperCase();
if (isnew) {
value = "0";
}
isnew = false;
//判断输入的数字是否在数制范围内
if (systems<=10) {
if (n.charCodeAt(0)<=47+systems) {
if (value != "0") {
value += n;
} else {
value = n;
}
CounterMessage(n);
}
} else if (systems>10 && systems<=36) {
if (n.charCodeAt(0)<=54+systems) {
if (value != "0") {
value += n;
} else {
value = n;
}
CounterMessage(n);
}
}
}
//小数点
function dot() {
if (systems == 10) {
if (isnew) {
value = output="0";
}
isnew = false;
if (value.indexOf(".") == -1) {
value += ".";
}
CounterMessage(".");
}
}
//正负号
function minuss() {
if (systems == 10) {
if (isnew) {
value = "0";
}
isnew = false;
if (value != "0") {
if (value.indexOf("-") == -1) {
value = "-"+value;
} else {
value = value.substr(1);
}
}
CounterMessage("+/-");
}
}
//+
function plus() {
duseless();
if (count[count.length-1] == "+" || count[count.length-1] == "-" || count[count.length-1] == "%") {
if (systems == 10) {
count.push(value);
} else {
count.push(parseInt(value, systems).toString());
}
} else if (count.length == 0) {
if (systems == 10) {
count.push(value);
} else {
count.push(parseInt(value, systems).toString());
}
} else {
//if(count[count.length-1].substr(-1,1)=="*"||count[count.l

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号