通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
资源搜索:
热门搜索:Linux VB C语言 PhotoShop Flash TCP/IP
   首页 | 文章 | 软件 | 动画 | 资源 | 励志 | 骗术 | 论坛 | 邮箱 | 会员中心 | 军事 | 科技 | 博客 | 图片 | 商城 | 最新更新 | 800g资源 | 爱心黑客
您现在的位置: 爱国者黑客 >> 资源 >> 媒体动画 >> Flash >> Action Script >> 文章正文

上一页  [1] [2] [3] [4] 

用as设计计算器,按照运算法则运算
责任编辑:admin   更新日期:2005-8-6
length; i++) {
if (Number(ns[i]) == 0) {
nt++;
} else {
break;
}
}
var nz = String(n).substr(nt+2, 1);
var nx = String(n).substr(nt+3);
if (nx != "") {
return String(nz+"."+nx+"e-"+(nt+1));
} else {
return String(nz+"e-"+(nt+1));
}
} else {
return n;
}
}
}
//化成普通数
function ChangetoF(n:Number) {
var ns = String(n);
if (ns.indexOf("e") == -1) {
return n;
} else {
var nss = ns.split("e");
var nz = nss[0];
var nx = nss[1];
if (nz.indexOf(".") == -1) {
for (var i = 0; i<Number(nx); i++) {
nz += "0";
}
} else {
var nzs = nz.split(".");
var nzz = nzs[0];
if (nzs[1].length<=Number(nx)) {
for (var i = 0; i<(Number(nx)-Number(nzs[1])); i++) {
nzz += "0";
}
nz = nzz;
}
return String(nz);
}
}
}
//ChangetoF和ChangetoE函数支持,删除字符串右边的指定字符
function Rtrim(n:String, d:String) {
if (d == undefined) {
d = " ";
}
if (n.indexOf(d) != -1) {
var ss = n.split("");
var ssl = ss.length;
for (var i = ssl; i>=0; i--) {
if (ss[i] == d) {
if (i+1 == ss.length) {
ss.pop();
}
}
}
return ss.join("");
} else {
return n;
}
}
//***************************************************************************
//监听键盘用
function onKeyDown(Ob) {
if ((Key.isDown(48) || Key.isDown(96)) && !Key.isDown(16)) {
numbers(0);
}
if ((Key.isDown(49) || Key.isDown(97)) && !Key.isDown(16)) {
numbers(1);
}
if ((Key.isDown(50) || Key.isDown(98)) && !Key.isDown(16)) {
numbers(2);
}
if ((Key.isDown(51) || Key.isDown(99)) && !Key.isDown(16)) {
numbers(3);
}
if ((Key.isDown(52) || Key.isDown(100)) && !Key.isDown(16)) {
numbers(4);
}
if ((Key.isDown(53) || Key.isDown(101)) && !Key.isDown(16)) {
numbers(5);
}
if ((Key.isDown(54) || Key.isDown(102)) && !Key.isDown(16)) {
numbers(6);
}
if ((Key.isDown(55) || Key.isDown(103)) && !Key.isDown(16)) {
numbers(7);
}
if ((Key.isDown(56) || Key.isDown(104)) && !Key.isDown(16)) {
numbers(8);
}
if ((Key.isDown(57) || Key.isDown(105)) && !Key.isDown(16)) {
numbers(9);
}
// A键
if (Key.isDown(65)) {
numbers("A");
}
// B键
if (Key.isDown(66)) {
numbers("B");
}
// C键
if (Key.isDown(67)) {
numbers("C");
}
// D键
if (Key.isDown(68)) {
numbers("D");
}
// E键
if (Key.isDown(69)) {
numbers("E");
}
// F键
if (Key.isDown(70)) {
numbers("F");
}
// F9 键
if (Key.isDown(120)) {
minuss();
}
//.键
if (Key.isDown(110)) {
dot();
}
//BackSpace键
if (Key.isDown(8)) {
BackSpace();
}
//ESC 键
if (Key.isDown(27)) {
C();
}
// delete 键
if (Key.isDown(46)) {
CE();
}
//+键
if (Key.isDown(107)) {
plus();
}
//-键
if (Key.isDown(109)) {
minus();
}
//*键或shift+8
if (Key.isDown(106) || (Key.isDown(56) && Key.isDown(16))) {
multiply();
}
// /键
if (Key.isDown(111) || Key.isDown(191)) {
except();
}
//shift+2
if (Key.isDown(50) && Key.isDown(16)) {
sqrt();
}
//Enter
if (Key.isDown(13)) {
equal();
}
//shift+5
if (Key.isDown(53) && Key.isDown(16)) {
percent();
}
// R键
if (Key.isDown(82)) {
reciprocal();
}
//ctrl+L
if (Key.isDown(76) && Key.isDown(17)) {
MC();
}
//ctrl+R
if (Key.isDown(82) && Key.isDown(17)) {
MR();
}
//ctrl+M
if (Key.isDown(77) && Key.isDown(17)) {
MS();
}
//ctrl+P
if (Key.isDown(80) && Key.isDown(17)) {
MP();
}
//P键
if (Key.isDown(80)) {
PI();
}
//T键
if (Key.isDown(84)) {
tan();
}
//ctrl+T
if (Key.isDown(84) && Key.isDown(17)) {
atan();
}
//S键
if (Key.isDown(83)) {
sin();
}
//ctrl+S
if (Key.isDown(83) && Key.isDown(17)) {
asin();
}
//O键
if (Key.isDown(79)) {
cos();
}
//ctrl+O
if (Key.isDown(79) && Key.isDown(17)) {
acos();
}
//ctrl+2
if (Key.isDown(50) && Key.isDown(17)) {
pow2();
}
//;键
if (Key.isDown(186)) {
this.int();
}
//ctrl+;
if (Key.isDown(186) && Key.isDown(17)) {
aint();
}
//V键
if (Key.isDown(86)) {
FtoE();
}
//shift+9
if (Key.isDown(57) && Key.isDown(16)) {
leftBracket();
}
//shift+0
if (Key.isDown(48) && Key.isDown(16)) {
rightBracket();
}
//shift+3
if (Key.isDown(51) && Key.isDown(16)) {
pow3();
}
//Y键
if (Key.isDown(89)) {
pow();
}
//N键
if (Key.isDown(78)) {
log();
}
//shift+N
if (Key.isDown(78) && Key.isDown(16)) {
exp();
}
//L键
if (Key.isDown(76)) {
Exp();
}
//shift+!
if (Key.isDown(49) && Key.isDown(16)) {
factorial();
}
//M键
if (Key.isDown(77)) {
dms();
}
//shift+M
if (Key.isDown(77) && Key.isDown(16)) {
adms();
}
//ctrl+5
if (Key.isDown(53) && Key.isDown(17)) {
Mod();
}
//ctrl+S
if (Key.isDown(83) && Key.isDown(17)) {
Sta();
}
//shift+A
if (Key.isDown(65) && Key.isDown(16)) {
Ave();
}
//ctrl+A
if (Key.isDown(65) && Key.isDown(17)) {
Ave2();
}
//shift+T
if (Key.isDown(84) && Key.isDown(16)) {
Sum();
}
//ctrl+T
if (Key.isDown(84) && Key.isDown(17)) {
Sum2();
}
//shift+D
if (Key.isDown(68) && Key.isDown(16)) {
S();
}
//ctrl+D
if (Key.isDown(68) && Key.isDown(17)) {
S2();
}
//Insert键
if (Key.isDown(45) && Key.isDown(17)) {
Data();
}
//ctrl+shift+L
if (Key.isDown(76) && Key.isDown(17) && Key.isDown(16)) {
load();
}
//ctrl+shift+C
if (Key.isDown(67) && Key.isDown(17) && Key.isDown(16)) {
clear();
}
//ctrl+shift+A
if (Key.isDown(65) && Key.isDown(17) && Key.isDown(16)) {
clearAll();
}
}
//监听器用
function addListener(Ob:Object) {
_listeners.push(Ob);
}
function removeListener(Ob:Object) {
for (var i = 0; i<_listeners.length; i++) {
if (_listeners[i] == Ob) {
_listeners.splice(i, 1);
}
}
}
function broadcastMessage() {
for (var i = 0; i<_listeners.length; i++) {
_listeners[i][arguments[0]](arguments[1], arguments[2], arguments[3]);
}
}
function CounterMessage(n:String) {
group();
broadcastMessage("onKeyDown", n, output, value);
}
//Getter And Setter
function get memory():Number {
return getMemory();
}
function getMemory():Number {
return remember;
}
function get hasMemory():Boolean {
return gethasMemory();
}
function gethasMemory():Boolean {
return (remember != undefined);
}
function set system(n:Number) {
setSystem(n);
}
function get system():Number {
return getSystem();
}
function setSystem(n:Number) {
if (n>=2 && n<=36) {
changeS(n);
}
}
function getSystem():Number {
return systems;
}
function set unit(n:String) {
setUnit(n);
}
function get unit():String {
return getUnit();
}
function setUnit(n:String) {
if (n == "radian") {
units = 1;
} else if (n == "degree") {
units = 0;
}
}
function getUnit():String {
var n:String = "";
if (units=1) {
n == "radian";
} else if (units=0) {
n == "degree";
}
return n;
}
function get hasBracket():Boolean {
return gethasBracket();
}
function gethasBracket():Boolean {
return (inbracket.length != 0);
}
function get bracketNum():Number {
return getBracketNum();
}
function getBracketNum():Number {
return inbracket.length;
}
function get hasData():Boolean {
return gethasData();
}
function gethasData():Boolean {
return (data != undefined);
}
function get n():Number {
return getN();
}
function getN():Number {
return data.length;
}
}
//End

运算的关键是calculate()和evals()。前者是把算式合理拆分,后者负责计算只包含乘,除和幂的字符串。然后在由calculate()计算加,减,取模,这就实现了按运算法则运算。希望能帮忙再改进一下。

还有,里面的阶乘(factorial()函数)希望会的同志改一下,现在只能算整数,最好整数,小数通吃。顺便问一下,梯度是什么?怎么换算?我希望能做出比Windows自带的计算器更好的计算器,至少功能要同样丰富。

as文件:
点击浏览该文件

  • 上一篇文章:
  • 下一篇文章:
  • 热门文章
    Olldbg常见问题
    汇编语言的艺术(组合语言的艺术)--观
    汇编语言的艺术(组合语言的艺术)--准
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言---程式设计 (4)
    虚拟8086模式
    SYS命令使用说明
    javascript + CSS 实现动态菜单显
    推荐文章
    自制Windows XP SP2自动安装光盘
    SQLServer注入工具改进版 v1.02
    使用photoshop CS进行自然美肤
    Photoshop绘制诺基亚手机
    PHOTOSHOP制作秋日之梦
    PHOTOSHOP鼠绘名模王爱萍
    Photoshop制作晶莹飞溅的水珠
    教你用PHOTOSHOP做放大镜
    鼠绘美女及服装修画全过程