2014-02-22 60 views
0

我正在開發中的FlashDevelop一個應用程序,使用HAXE和OpenFlHAXE,OpenFL Android的調試在CPP

當我測試在閃存目標中的應用程序給錯誤,它工作正常。但是,當我編譯爲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); 
} 
+0

你在你的項目中的文件名「ReaderView2.hx」? – npretto

+0

@lordkryss是的,有 –

+0

我想我們需要一個文件來幫助你,也可能是ReaderView2_obj :: setZoom()cpp文件中,也一定要擁有最新版本openfl和hxcpp – npretto

回答

0

因此很明顯,使用的toString()funcion給出了一段cpp的目標問題。

相關問題