Home > Archives > 2008-11-10

2008-11-10

D.evalを使って数式の実行

Flex3でユーザーの入力した数式(関数)に対して、変域に相当する値域を求めるという算数チックなことをやろうと思っています。

D.evalのeval関数は以下のように引数をとります。

eval(program:Object, context:Object=null, thisObj:Object=null);

programは実行する式で、contextにその式で利用する変数の値を定義することによって実行時に代入してくれます。

なので、数式を実行するには以下のような関数を用意してやれば、任意の式、任意のxに対して結果をだすことができます。

function calculate(x:int, expr:String):* {
return D.eval(expr, {x:x});
}

//ユーザーが"2*x+10"を数式として指定した場合
trace(
calculate(1, '2*x+10') );

あぁ便利だ。

Home > Archives > 2008-11-10

Search
Feeds
Meta

Return to page top