使用Sublime处理Corona sdk Simulator。我将每个apk安装到手机上进行测试。
我对Corona sdk和Lua很新,并且一直在阅读问题和答案,有些人已经帮助过,我仍然无法正确地进行这种特殊的过渡。我尝试做的是使用我们已有的网络应用程序,并在欢迎页面后使用webview打开。我越来越了解我越花时间,但我会感谢一些帮助,我可能会出错?
我得到第一页显示我的徽标,听众似乎正在工作。但是,当我在我的Android GalaxyS3上安装它时触摸不起作用,没有任何反应。这是我正在使用的代码。
我不确定它是否只是一两行我可能会完全离开或完全离开。我还在构建中打开了访问网络的权限。谢谢你的帮助。我希望我的徽标成为打开场景的按钮或我需要研究的滑动。出于某种原因,我无法触摸工作并带我经过第一个欢迎屏幕。我有三个与我合作的文件。 main.lua , config.lua 和 build.lua 。所有这些代码都是 main 。
local myTextObject = display.newText( "Welcome to", 320, 110, "Arial", 60)
local Btn = display.newImage( "logo-final-blackbkg-stacked-otl.png" )
Btn.x = 320; Btn.y = 530;
local myListener = function( webview )
print( "Listener called with event of type: touch"..webview.name )
end
Runtime:addEventListener( "touch", myListener )
Runtime:addEventListener( "system", myListener )
function Btn:touch( event )
if event.phase == "began" then
print( "Event dispatched; Btn: scene")
end
return true
end
local function myTouchListener()
if ( event.phase == "began" ) then
--code executed when the button is touched
local playBtn;
local exitBtn;
local function onPlayBtnRelease()
composer.gotoScene( "main", "fade", 500)
return true
end
local function onExitBtnRelease()
composer.gotoScene("main", "fade", 500)
return true -- indicates successful touch
end
local composer = require( "composer" )
local scene = composer.newScene()
local webview = require "webview"
function scene:create ( event )
local sceneGroup = self.view
webview:addwebListener("requestUrl", webview)
scene:addEventListener("create", scene)
end
function scene:show ( event )
local sceneGroup = self.view
local phase = event.phase
if ( phase == "will") then
elseif (pase == "did") then
local socket = require("socket")
--Connect to the client
local client = socket.connect("www.stockmashin.com", 80)
--Get IP and Port from client
local ip, port = client:getsockname()
--Print the ip address and port to the terminal
print("IP Address: ")
end
native.newWebView( centerX, centerY, width, height )
local function webListener( event )
if event.url then
print( "You are visiting: www.stockmashin.com" .. event.url )
end
if event.type then
print( "The event.type is www.stockmashin.com" .. event.type ) -- print the type of request
end
if event.errorCode then
native.showAlert( "Error!", event.errorMessage, { "OK" } )
end
end
local webView = native.newWebView( display.contentCenterX, display.contentCenterY, 320, 480 )
webView:request( "http://www.stockmashin.com/" )
webView:addEventListener( "urlRequest", webListener )
local availableChannel = audio.findFreeChannel()
print( "object touched = myButton"..tostring(event.target) ) --'event.target' is the touched object
end
return false --prevents touch propagation to underlying objects
end
function scene:destroy( event )
local sceneGroup = self.view
-- Called prior to the removal of scene's view ("sceneGroup").
-- Insert code here to clean up the scene.
-- Example: remove display objects, save state, etc.
end
-- Listener setup
scene:addEventListener( "create", scene )
scene:addEventListener( "show", scene )
scene:addEventListener( "hide", scene )
scene:addEventListener( "destroy", scene )
return scene
end
答案 0 :(得分:1)
您似乎有三件事需要修复。
首先,除非你对Composer的工作原理感到满意,否则你应该简单地假设main.lua永远不会成为一个场景。这只是加载第一个场景的起点:
local composer = require("composer")
--
-- other initialization code
--
composer.gotoScene("yourfirstsceen").
然后在yourfirstscene.lua(您可以将其重命名为“menu.lua”,您可以使用现有的场景模板并逐字复制。不要取出任何部分。为每个场景执行此操作,开始以场景模板为基础。
接下来,应在场景的场景:创建(事件)功能中创建显示对象。创建后的每个对象都必须添加到场景的视图组中:
sceneGroup:insert(yourNewDisplayObject)
这个和第三个问题的例外是像newWebViews这样的本地对象(任何以native。*开头的东西)不是Corona SDK OpenGL画布显示层次结构的一部分,不能与Corona SDK绘图API交互(比如创建一个新的)图像,将其添加到组等)。它们始终位于Corona SDK OpenGL画布的顶部。您必须在场景的场景:show(事件)功能中创建它们,以便它们在场景转换期间看起来不会很奇怪。您必须在场景的场景中隐藏它们:隐藏(事件)功能。如果你不这样做,他们将留在屏幕上。