Только что заметил этот вопрос и понял, что я ответил почти на то же самое здесь: https://stackoverflow.com/a/11460839/1449525
Чтобы перефразировать себя, вы определенно можете использовать D.eval , AS3Eval или ExternalInterface (как видно из текущего выбранного ответа), если вы работаете на веб-странице. Однако все, что вам действительно нужно, это что-то вроде 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, []);
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 работает просто отлично, но у меня есть личные сомнения относительно межъязыкового общения (особенно с точки зрения эффективности и безопасности), а также просто неловкий характер этого. Я чувствую, что полностью автономное решение на одном языке обычно предпочтительнее в большинстве ситуаций.