我应该如何使用AS3计算数学公式?
并不需要特别复杂的方式,例如
(10/3)*4+10
。
谢谢。(10/3)*4+10
。
谢谢。虽然你可以使用像D.eval或AS3Eval这样的大型eval库,但你实际上只需要像这个简单的MathParser(有关MathParser的更多信息)一样的东西。
这是如何使用MathParser:
package {
import bkde.as3.parsers.*;
import flash.display.Sprite;
public class MathTest extends Sprite {
public function MathTest() {
var parser:MathParser = new MathParser([]);
var compiledObj:CompiledObject = parser.doCompile("(10/3)*4+10");
var answer:Number = parser.doEval(compiledObj.PolishArray, []);
// EDIT: In case you wanted variables
var xyParser:MathParser = new MathParser(["x", "y"]);
var xyCompiledObj:CompiledObject = xyParser.doCompile("(x/3)*y+10");
var xyAnswer:Number = xyParser.doEval(xyCompiledObj.PolishArray, [10, 4]);
}
}
}
ExternalInterface.call
来访问Javascript的eval函数。var formula:String = '1+1';
var result:* = ExternalInterface.call('eval', formula);
result == 'undefined'
,因为这表示公式语法出现错误。