Thanks Raizor for the info, I have been playing around with this and this is what I have so far..
#XPos = 800
#YPos = 600
InitSprite()
InitSprite3D()
OpenScreen(#XPos, #YPos, 32, "")
LoadFont(0, "Topaz", 20, #PB_Font_Bold)
Img = LoadImage(#PB_Any, "back.bmp") ; The Background Image
CreateSprite(0 , #XPos+800, 100, #PB_Sprite_Texture)
StartDrawing(SpriteOutput(0)) ; --- Create a 3D Sprite to go over the Image ---
Box(0, 0, #XPos+800, 32, $1)
DrawingFont(FontID(0))
DrawText(0, 0, "THIS IS THE EFFECT I AM AFTER - THE BACK IMAGE.", 0, $1)
StopDrawing()
CreateSprite3D(0, 0)
X = #XPos
Repeat
ClearScreen(0)
StartDrawing(ScreenOutput())
DrawImage(ImageID(Img), 0, 414) ; Draw the background
StopDrawing()
Start3D()
DisplaySprite3D(0, X, 411) ; Draw the 3D Sprite
Stop3D()
X - 2
If X < - #XPos
X = #XPos
EndIf
FlipBuffers()
Until GetAsyncKeyState_(#VK_ESCAPE)
End