我正在使用最新的Corona SDK版本。在我的应用程序中,我正在通过网络加载图像.download(...(。如果用户处于脱机状态,我会改为加载占位符。
有时下载在中间失败或无法正确保存文件。如果我尝试使用 display.newImageRect(( 显示图像,则会显示警告:警告:脚本/场景/游戏.lua:98:文件"test.png"不包含有效图像
如何捕获此警告并改为显示占位符?检查文件存在((不会捕获损坏的文件。
谢谢FJ
来自 Lua 文档
本地状态, err = pcall( 函数名称 (
pcall 函数在保护模式下调用其第一个参数,以便它会在函数运行时捕获任何错误。如果没有错误,PCALL 返回 true,以及调用返回的任何值。否则,它将返回 false 以及错误消息。
您可以使用pcall
函数在创建映像时捕获错误
local image
local status, err = pcall( function() image = display.newImage('img.png', 100, 100) end )
if status and image then
print( 'no errors ' )
-- no errors
else
print( 'errors ' )
-- function raised an error: take appropriate actions
end
我在下面放了更多来自 Corona 文档的使用network.download
示例
local function networkListener( event )
if ( event.isError ) then
print( "Network error - download failed: ", event.response )
elseif ( event.phase == "began" ) then
print( "Progress Phase: began" )
elseif ( event.phase == "ended" ) then
print( "Displaying response image file" )
myImage = display.newImage( event.response.filename, event.response.baseDirectory, 60, 40 )
myImage.alpha = 0
transition.to( myImage, { alpha=1.0 } )
end
end
local params = {}
params.progress = true
network.download(
"http://docs.coronalabs.com/images/simulator/image-mask-base2.png",
"GET",
networkListener,
params,
"helloCopy.png",
system.TemporaryDirectory
)