質問

っさんレースとなActionScript.いねますので表示の数学関数から文字列になります。

E.g.私の作pythonスクリプトを書いう:

formula = 'x**2 + 3*x'
for x in range( 0, 100 ):
    y = eval( formula )
    graph.display( x, y )

たいポートするActionScriptうですが、のように保つ所以なのではないでしょうか<エバール>以降のバージョン3.したいので計算する私の機能に値する。

役に立ちましたか?

解決

また、あなたのケースでうまくいくかもしれない何かではなく、JavaScriptのevalのを使用しています。あなたが好きなものを使用することができます:

var result = ExternalInterface.call(myEvalFunctionInJS,formula)

数学関数を評価する。

このは、JavaScriptなどのやや簡単で便利な回避策は、ActionScriptに非常に近いです。

あなたがループ内のExternalInterfaceコールを入れた場合は、

、それが遅くなることがあります。それを避けるには、JavaScriptでループを書くことができます。 (あなたは、実際のHTMLページをタッチする必要がないようにあなたも、AS3内部全体ジャバスクリプトを書くことができます。)

編集: ここではそのためのリンクです。

<のhref = "http://www.actionscript.org/resources/articles/745/2/JavaScript-and-VBScript-Injection-in-ActionScript-3/Page2.html" のrel = "nofollowをnoreferrer" > http://www.actionscript.org/resources/articles/745/2/JavaScript-and-VBScript-Injection-in-ActionScript-3/Page2.html の

他のヒント

あなたはevalを自分で記述する必要があります。あなたは、文字列を解析し、右のオペレーターを呼び出す必要があります。

ここでする 「SAリンクあなたが始めるために。

タマリンプロジェクトはECMAScriptのパーサの中で書かれていES4。同様にこれを試してみてください。

  

「あなたは、実際のHTMLページをタッチする必要がないようにあなたも、AS3内部全体ジャバスクリプトを書くことができます。」あなたは、リンク/チュートリアルを持っていますか? - okoman

ASとJSの両方が同じのECMAScript標準に基づいています。あなたはコンテナにAS3の文字列を渡すと、この文字列にJSのevalを使用するのであれば、それだけで正常に動作する必要があります。

だがこの問いを実現したいの答えはほとんど同じものはこちら https://stackoverflow.com/a/11460839/1449525

への言い換え自分では、動画ファイルをダウンロード利用 D.<エバール>, 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もの作品は、イブレア城、イブレア大すが、私個人については、クロス言語コミュニケーション(特に効率とセキュリティ)と、ぎこちない自然です。ような感じの完全される、言語ソリューションは一般的に好ましいです。

少し遅れますが、参考のために、D.evalライブラリーは、あなたが求めているものを行います:

http://www.riaone.com/products/deval/する

それは自由であり、私にとって素晴らしい作品が、ソースが付属していません。私はこの質問には、組み込みの代替またはソース可能な解決策を探しています。

自体をフラッシュするポートタマリンに一見放棄したプロジェクトもあります:

http://eval.hurlant.com/する

より多くの進歩がなされたが、今の好奇心のように思えるされた場合です。

は素晴らしいだろう

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top