Я пытаюсь отобразить круг с помощью Corona, если class == "a" отображает его красным, иначе отображает синий. Это работает в эмуляторе короны, но я все время получаю синий круг при попытке в реальном устройстве или другом эмуляторе (bluestacks). Это мой код:
if (class=="a") then
myCircle:setFillColor( 1,0,0 )
print( "calss is a" )
print( type( class ) )
elseif (class=='b') then
myCircle:setFillColor( 0,0,1 )
print( "calss is b" )
else
print( "calss is not a or b" )
print (class)
print( type( class ) )
end
В журнале имитаторов короны показаны операторы печати в соответствующих условиях if и elseif, но logcat устройства Android показывает операторы печати в противном случае всегда.
Примечание. Я импортируюкласс из CSV-файла. Это похоже на
5,6,a
3,7,a
6,2,a
4,6,b
4,4,b
код, который я использую для импорта:
local DataCount=1
for line in file:lines() do
x, y, class = line:match("([^,]+),([^,]+),([^,]+)")
data[DataCount]={ x=x, y=y, class=class }
DataCount=DataCount+1
print( line )
end
Редактировать: если стало верно, когда я вручную добавил class = "a" перед проверкой условия, так что я думаю, эточто-то не так с тем, как я импортировал данные ...?
Редактировать 2: Нашел решение .. заменил это:
x, y, class = line:match("([^,]+),([^,]+),([^,]+)")
на это:
x, y, class = line:match("([^,]+),([^,]+),([a-b]+)")
ноЯ до сих пор не понимаю, почему это происходит .. невидимый персонаж добавляется после сборки apk ??? Насколько я понимаю, 1-я строка соответствует чему угодно, кроме "," после второй "," и присваивает ее переменной класса. вторая строка ищет только символы между ab (включительно), исключая любые шансы невидимого символа быть добавленным в класс.