Haxe, отладка OpenFL android, выдающая ошибку для cpp

Я разрабатываю приложение в FlashDevelop, используя Haxe и OpenFl

Когда я тестирую свое приложение в flash target, оно работает нормально. Но когда я компилирую для Android, возникает ошибка во время компиляции:

./src/ReaderView2.cpp: In member function 'virtual Void ReaderView2_obj::setZoom()':
./src/ReaderView2.cpp:653: error: base operand of '->' has non-pointer type 'String'
Build halted with errors (haxelib.exe).

... Что, очевидно, как-то связано с cpp, а я на самом деле не эксперт.

Кто-нибудь знает, что означает ошибка?

Вот функция setZooom: (весь файл довольно большой)

public function setZoom()
{
    hideOptions();

    while (numChildren > 0)
    {
        Main.remove(getChildAt(0));
    }

    if (image != null) if (image.parent != null) image.parent.removeChild(image);

    images = new Array();

    field = new TextField();
    var fieldFont = Assets.getFont("fonts/Kreon-Regular.ttf");
    var format:TextFormat = new TextFormat(fieldFont.fontName, currentZoom, 0x4F4F4F);

    format.align = TextFormatAlign.LEFT;
    field.defaultTextFormat = format;

    field.embedFonts = true;
    field.text = fullText;
    field.selectable = false;
    field.wordWrap = true;
    field.border = false;
    field.autoSize = TextFieldAutoSize.LEFT;
    field.width = displayWidth;
    //field.x = 0;

    //split string into words
    var allParas:Array<String> = fullText.split("\r\n");
    var words:Array<String>;
    var fields:Array<TextField> = new Array();
    var tempField:TextField = null;
    var contentHeight:Float = displayHeight;
    var wordI:Int;
    var paraI:Int = 0;
    var tempArr2:Array<String>;

    while (paraI < allParas.length)
    {
        if (false) //check img tag
        {

        }
        else //if para is words
        {
            wordI = 0;
            words = allParas[paraI].split(" ");

            while (wordI < words.length)
            {
                if (tempField == null || tempField.textHeight > contentHeight)
                {
                    if (tempField != null) {
                        wordI--;
                        tempArr2 = tempField.text.toString().split(" ");


                        for (i in 0... tempArr2.length)
                        {
                            tempArr2.remove("");

                        }

                        tempArr2.pop(); 
                        tempField.text = tempArr2.join(" ");
                    }

                    tempField = new TextField();
                    tempField.defaultTextFormat = field.getTextFormat();
                    tempField.embedFonts = true;
                    tempField.text = "";
                    tempField.border = false;
                    tempField.selectable = false;
                    tempField.wordWrap = true;
                    tempField.autoSize = TextFieldAutoSize.LEFT;
                    tempField.width = displayWidth-2;
                    tempField.x = 0;
                    fields.push(tempField);
                }
                else 
                {
                    tempField.appendText(words[wordI] + (wordI == words.length - 1? "\n": " "));
                    wordI++;
                }
            }
        }
        paraI++;
    }

    var bd:BitmapData;

    for (i in 0... fields.length)
    {
        bd = new BitmapData(Std.int(fields[i].width), Std.int(fields[i].height));
        bd.draw(fields[i]);
        images.push(new Bitmap(bd, PixelSnapping.AUTO, true));

    }

    //addChild(fields[0]);
    images[0].x = 10;
    addChild(images[0]);
    currentPageInstance = images[0];
    currentPage = 0;

    drawScrollBar();
    if (optionsBtn!=null)addChild(optionsBtn);
}

1 ответ

Решение

Таким образом, очевидно, что использование функции toString() создает проблемы для цели cpp.

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