2014-01-23 51 views
0

我正在尋找在ActionScript中顯示相對簡單的數學公式的最佳方法。到目前爲止,我找到的最佳解決方案是「用ActionScript 3編寫的MathML解析器」:作者慷慨地發佈了源代碼,這是一個好的開始,但它需要更多的工作。在ActionScript中顯示公式

我還發現http://www.fmath.info/,但我不明白它如何與純ActionScript一起使用(我沒有使用Flex)。

我的問題是:你可以推薦一個很好的AS3庫,它將呈現MathML或類似的公式語言作爲Sprite嗎?

+0

「問題要求我們推薦或找到工具,庫或最喜歡的非現場資源,因爲它們傾向於吸引自以爲是的答案和垃圾郵件,因此它們是堆棧溢出的焦點話題,而不是[描述問題](http:// meta.stackexchange.com/q/139399/)以及到目前爲止解決它的過程。「 [我可以在這裏詢問什麼主題?](http://stackoverflow.com/help/on-topic) –

+0

問題:在ActionScript中顯示數學公式。做了什麼:嘗試了http://www.sevenson.com.au/actionscript/mathml/和http://www.fmath.info/。兩者都不是上述問題的完整解決方案。 – user1566515

回答

1

這是我見過的最好的一個:http://sharemath.com/

它涵蓋了廣泛的數學輸入。我認爲它大部分都可以從XML調整。即使您只是希望從頭開始構建它的基礎,也值得研究。

還有一些被稱爲是我們經常使用的LaTeX:http://validi.fi/latex2flash/

無論哪種方式,從經驗上說,這是一個非常棘手的過程從頭開始做這個所以有得至少基而過的非常是有用。上面提供從鏈接採取

LaTeX的集成示例:

package 
{ 
    import flash.display.*; 
    import flash.text.*; 
    import flash.events.KeyboardEvent; 

    public class Test extends MovieClip 
    { 
    private var latexField : LatexField; 
    private var inputField : TextField; 

    public function Test() 
    { 
     inputField = new TextField(); 
     inputField.type = TextFieldType.INPUT; 
     inputField.border = true; 
     latexField = new LatexField(); 
     latexField.eqString = "\\sum_{i=0}^ni=1+2+3+4+\\ldots +n"; 
     latexField.x = 200; 
     addChild(inputField); 
     addChild(latexField); 
     inputField.addEventListener(KeyboardEvent.KEY_UP, keyUpListener); 
    } 

    private function keyUpListener(e:KeyboardEvent):void 
    { 
     //ENTER 
     if (e.keyCode == 13) { 
     latexField.eqString = escape(TextField(e.target).text); 
     } 
    } 
    } 
} 

祝你好運!

+0

謝謝你花時間回答,但這不是我要找的。正如我希望從這個問題中應該清楚的,我需要一些AS3代碼(庫,包等),它們會在運行時爲Sprite呈現一個數學公式。 – user1566515

+0

如果沒有下載某個庫或自己構建它(如我的答案中所述),那麼這是無法完成的,我們不會爲您編寫這個代碼,這就是爲什麼我發佈鏈接到源代碼的原因,以此爲基礎。另外我鏈接的LaTeX集成是一個可以下載和使用的庫,並且完全按照您的要求提供。請仔細查看答案。這是從專業工作經驗中整合你所要求的確切功能。此外,我將發佈直接在他們的網站上找到的LaTeX集成代碼。 –

+0

好吧,我下載並安裝了LaTeX2Symbol.zxp。您發佈的示例代碼會導致「1046:類型未找到或不是編譯時常量:LatexField」。任何想法爲什麼? – user1566515