MapView в фоновом режиме - Corona SDK

Мне нужна помощь с MapView в Corona SDK. Я хочу поставить карту в качестве фона (но со всеми функциями) и, в данном случае, кнопку на передний план. Вот мой код:

function scene:createScene( event )
    local group = self.view

    if ( system.getInfo( "environment" ) == "simulator" ) then
        local simulatorMessage = "Maps not supported in Corona Simulator.\nYou must build for iOS or Android to test native.newMapView() support."
        local label = display.newText( simulatorMessage, 36, 40, 270, 0, native.systemFont, 12 )
        label.anchorX = 0
        label.anchorY = 0
    end

    myMap = native.newMapView( 20, 20, display.contentWidth, display.contentHeight )

    if ( myMap ) then
        myMap.mapType = "normal"
        myMap.x = display.contentCenterX
        myMap.y = display.contentCenterY
        myMap:setCenter( currentLatitude, currentLongitude )
        myMap:addEventListener("mapLocation", mapLocationListener)
    end    

    backBtn = widget.newButton
    {
        id="backButton",
        label="Back",
        fontSize="30",
        labelColor={ default={1, 1, 1}, over={0, 0, 0, 0.5} },
        defaultFile="images/button.png",
        width = dispWidth * 0.25, height = dispHeight * 0.1,
        onRelease = onBackBtnRelease
    }
    backBtn.anchorX = 0.5
    backBtn.anchorY = 0.5
    backBtn.x = display.contentWidth * 0.8
    backBtn.y = dispHeight * 0.8
    backBtn:toFront()

    group:insert( backBtn )
    group:toFront() --second try to put that button to front
end

Поскольку MapView является нативным объектом, я не могу добавить его ни в какую группу, а 'mapView:toBack()' тоже не работает ("попытка проиндексировать upvalue 'myMap' (нулевое значение)'). В Corona SDK кнопка появляется без карты, как и ожидалось. На устройстве я получаю карту без моей кнопки, а не так, как ожидалось.

Можно ли поставить родной объект сзади или заставить что-то быть впереди?


person Arthur    schedule 19.05.2014    source источник


Ответы (2)


То, что вы пытаетесь сделать с картой и кнопкой, в настоящее время невозможно с CoronaSDK.

Действительно, MapView — это нативный объект. Согласно документации Corona, вы не можете размещать другие объекты поверх MapView.

В документации говорится:

Объекты карты, как и другие собственные экранные объекты, не могут быть вставлены в группы и всегда отображаются поверх обычных экранных объектов (групп, векторов, изображений и текста).

см. документацию здесь

Удачи в кодировании.

person Jose Llausas    schedule 21.07.2014
comment
Я изменил дизайн. У Corona есть свои недостатки, я бы не рекомендовал его для чего-то другого, кроме простых приложений/игр. - person Arthur; 22.07.2014
comment
@Arthur Артур, я согласен, требуется больше гибкости с нативными объектами, я разрабатываю картографическое приложение, и именно по этой причине мне пришлось перейти на нативное. Решением может быть использование карт Corona для смешивания нативного с Corona, но в настоящее время оно находится в стадии бета-тестирования. - person Jose Llausas; 22.07.2014

Сначала проверьте следующее:

Если кнопка не отображается на устройстве, наиболее распространенной проблемой будет , вы можете ошибиться в именах изображений (проверить наличие заглавных букв) или проверить правильность пути к файлу или нет.

Чтобы узнать подробнее о mapView: http://docs.coronalabs.com/api/library/native/newMapView.html

Я знаю, что вы, возможно, уже посетили, вам лучше посмотреть еще раз.

Спасибо,

person Kumar KS    schedule 24.07.2014