Animation 在Corona SDK中实现逐帧动画的更好方法

Animation 在Corona SDK中实现逐帧动画的更好方法,animation,graphics,sdk,coronasdk,frame,Animation,Graphics,Sdk,Coronasdk,Frame,在主应用程序菜单出现之前,我需要在启动屏幕后显示动画。设计师在3D软件中制作动画,并以PNG图像逐帧导出 我四处搜索,找到了某人推荐的MovieClip库。我使用了它,在Corona的模拟器中运行良好,但在设备中崩溃。我想问题在于记忆 这些图像的尺寸为2048 x 1536(专为iPad视网膜屏幕设计),平均大小约为30KB。大约有300张图片。所以我也不能用spritesheet 请建议是否有更好的方式来做这种动画在科罗纳。我搜索了几天,甚至在他们的论坛上发了帖子,都没有好结果 谢谢据我所知,

在主应用程序菜单出现之前,我需要在启动屏幕后显示动画。设计师在3D软件中制作动画,并以PNG图像逐帧导出

我四处搜索,找到了某人推荐的MovieClip库。我使用了它,在Corona的模拟器中运行良好,但在设备中崩溃。我想问题在于记忆

这些图像的尺寸为2048 x 1536(专为iPad视网膜屏幕设计),平均大小约为30KB。大约有300张图片。所以我也不能用spritesheet

请建议是否有更好的方式来做这种动画在科罗纳。我搜索了几天,甚至在他们的论坛上发了帖子,都没有好结果


谢谢

据我所知,Corona SDK不支持视频播放(除非它使用本机窗口)。如果movieclips不工作,您可以尝试加载每个图像,然后使用enterframe函数循环它们

差不多

--table to hold images you are on
local localImages = {}

--how many images in splash
local totalImages = 100

--create images
for i = 1, totalImages, 1 do
    --create different images. Change these to load in images using newImageRect of course
    localImages[i] = display.newRect( display.contentWidth*.5, display.contentHeight*.5, display.contentWidth, display.contentHeight )
    localImages[i]:setFillColor( i/totalImages )

    --make images invisible
    localImages[i].isVisible = false
end


--timer
local myTimer = 1

--first frame on
localImages[1].isVisible = true

-- listener function to play images one by one
local function onEveryFrame( event )
    --count
    myTimer = myTimer + 1

    --turn on next frame
    localImages[myTimer].isVisible = true

    --turn off last frame
    localImages[myTimer-1].isVisible = false

    --played all images in splash
    if myTimer == totalImages then
        --removes enterFrame
        Runtime:removeEventListener( "enterFrame", onEveryFrame )       
    end
end

-- assign the above function as an "enterFrame" listener
Runtime:addEventListener( "enterFrame", onEveryFrame )
不知道这是否适用于您正在处理的图像类型。告诉我进展如何!:)


乔。

这在图像中超过900万张……哇

电晕的设计方式需要使用精灵,所以请尝试优化PNG(我在TinyPNG(www.TinyPNG.com)方面非常幸运),然后将它们组合成精灵表并使用动画功能


请记住,您可以使用多张sprite图纸,这样您就可以将它们分为3张100,6张50,等等。

我尝试了您的解决方案,结果与使用Movieclip库类似。我猜延迟是因为所有图像一次加载。我将尝试分批加载,看看是否有效。您还有其他想法吗ggest?我认为可能会发生这种情况。也许如果你优化png文件?老实说,我不确定这在Corona中是否可行。如果你与我共享png序列,我可以尝试使用它。但Corona图像指南规定,图像在任何情况下都不应超过2048x2048纹理大小。这就是我没有合并的原因把它们放在精灵纸上。