AS3 で数式を評価するにはどうすればよいですか? のような派手なものはありません(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'
数式構文のエラーを意味するかどうかを確認することをお勧めします。