Отображение формул в ActionScript

Я ищу лучший способ отображения относительно простых математических формул в ActionScript. На данный момент лучшее решение, которое я нашел, - это "MathML Parser, написанный на ActionScript 3": http://www.sevenson.com.au/actionscript/mathml/ Автор щедро опубликовал исходный код, и это хорошее начало, но это требует больше работы.

Я также нашел http://www.fmath.info/, но я не понимаю, как его можно использовать с чистым ActionScript (я не использую Flex).

Мой вопрос: можете ли вы порекомендовать хорошую библиотеку AS3, которая бы отображала MathML или язык формул, похожий на Sprite?

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);
      }
    }
  }
}

Удачи!

Другие вопросы по тегам