Yes. However the easiest way would be something like this (more or less)
InitLoadingScreen()
InitGame()
do
RunGame()
Sync()
loop
function InitGame()
UpdateLoadingScreen(10)
LoadSomeImages()
UpdateLoadingScreen(25)
LoadMoreImages()
UpdateLoadingScreen(45)
LoadFinalImages()
UpdateloadingScreen(70)
LoadSounds()
Updateloadingscreen(90)
LoadLastSounds()
Updateloadingscreen(100)
endfunction
Where UpdateLoadingScreen() will animate the loading bar/indicator in a short loop. Alternatively you could replace each of those loading functions simply with blocks of code (ie disperse UpdateLoadingScreen() throughout your existing init function). Another alternative is to store all your images and sounds in a massive array, have the filenames as consecutive numbers (1.png, 2.png etc) and load them all in a for/next loop, calling updateLoadingScreen() in each loop.
Hope that's a bit helpful
I mean anything goes, just so long as you don't go placing sync commands and loops all throughout your code. Keep all your loading screen animation stuff separate from your other code.