Oh you mean like this (this is old code but I think it still works on the latest version of BMAX):
DebugLog "MOD_ImageFade.bmx" ' Copyright Indiepath Ltd, this source is not public domain. Use at your own risk! Global iFadeTList:TList = New TList Type iFade Field Image:TImage Field In:Int Field Out:Int Field Time:Int Field Alpha:Double Field Timer:Timer Field x:Double Field y:Double Field dx:Double Field dy:Double Method New () If iFadeTList = Null Then iFadeTList = New TList iFadeTList.AddLast Self End Method '---------------------------------------------------------------- Function KillAll() While (Not iFadeTList.IsEmpty()) iFadeTList.RemoveLast() Wend ' FlushMem End Function '---------------------------------------------------------------- Function Destroy(i:iFade) iFadeTList.Remove i i = Null ' FlushMem End Function '---------------------------------------------------------------- Function Create:iFade(img:TImage,x:Double,y:Double,dx:Double,dy:Double,in:Int,Out:Int,Time:Int) Local i:iFade i:iFade = New iFade i.Image = img i.x = x i.y = y i.dx = dx i.dy = dy i.in = in i.out = out i.time = time i.alpha = 0 i.Timer = Timer.Create(i.Time) Return i End Function '---------------------------------------------------------------- Method Update() SetScale(1,1) Local now:Int = self.Timer.GetValue() Select True Case now < 10 Timer.Destroy(self.Timer) Destroy(Self) Return False Case now < self.out self.Alpha = (Float(now) / Float(self.out)) Case now < (self.Time - self.in) self.alpha = 1 Case now < self.time self.Alpha = 1 - (Float(now - (self.time-self.in)) / Float(self.in)) End Select SetBlend(SOLIDBLEND) SetAlpha(self.alpha) SetBlend(ALPHABLEND) DrawImageRect(self.Image,self.x ,self.y ,self.dx ,self.dy ) End Method '---------------------------------------------------------------- Function UpdateAll() Local i:iFade Local count:Byte = False For i:iFade = EachIn iFadeTList Count = True i.Update() Next Return Count End Function '---------------------------------------------------------------- Method RunFade() While self.Timer.GetValue() > 10 Cls self.Update() Flip Timer.UpdateAll() Wend End Method End Type