Cross-fade Transition
From Directorforum Collaboration Wiki
Contents |
Description
A Cross-fade Transition behavior.
Director MX 2004, Director 11
Example
Files
- Director 10 Source - none
- Director 11 Source - Media:Astro_crossfade.dir
Lingo
-- AstrO Controls :: Crossfade -- version 1.0-25Sep08 -- Created by Toby De Ieso -- Modified by Toby De Ieso property pSprite property pMember property pFadeLength property pFadeStartTime property pFadeEndTime property pFadeMode property pContinueMethod property pClickToSkip property pActive on isOKToAttach me, tType, tSpriteNum tReturn = FALSE if tType = #graphic then tReturn = (sprite(tSpriteNum).member.type = #bitmap) return tReturn end on getPropertyDescriptionList me, descriptionList descriptionList = [:] descriptionList.addProp(#pFadeLength, [#comment:"Fade length (milliseconds):",#format:#integer,#default:500]) descriptionList.addProp(#pFadeMode, [#comment:"Fade mode:",#format:#symbol,#default:#blend,#range:[#blend,#alpha]]) descriptionList.addProp(#pContinueMethod, [#comment:"Continue method:",#format:#symbol,#default:#goNextFrame,#range:[#goNextFrame,#stayOnFrame]]) descriptionList.addProp(#pClickToSkip, [#comment:"Enable click to skip:",#format:#boolean,#default:TRUE]) return descriptionList end on beginSprite me pSprite = sprite(me.spriteNum) pMember = pSprite.member pMember.image = _player.activeWindow.image.duplicate() pMember.regPoint = point(0,0) pSprite.loc = point(0,0) pSprite.blend = 100 pSprite.locZ = 1000 pFadeStartTime = VOID pFadeEndTime = VOID if pFadeMode = #alpha then pMember.image.setAlpha(255) pMember.image.useAlpha = TRUE end if pActive = TRUE end on finishFade(me) pActive = FALSE pSprite.visible = FALSE end on endSprite me pMember.image = image(1,1,32) pSprite.blend = 100 pSprite.locZ = me.spriteNum pSprite.visible = TRUE end on enterFrame me if pActive then tCuTime = _system.milliseconds if voidP(pFadeStartTime) then pFadeStartTime = tCuTime pFadeEndTime = pFadeStartTime + pFadeLength end if case pFadeMode of #blend: pSprite.blend = min(100,max(0,(((pFadeEndTime - tCuTime) / (pFadeEndTime - pFadeStartTime).float) * 100).integer)) #alpha: pMember.image.setAlpha(min(255,max(0,(((pFadeEndTime - tCuTime) / (pFadeEndTime - pFadeStartTime).float) * 255).integer))) end case end if end on exitFrame me if pActive then if _system.milliseconds < pFadeEndTime then _movie.go(_movie.frame) else me.finishFade() if pContinueMethod = #stayOnFrame then _movie.go(_movie.frame) end if else if pContinueMethod = #stayOnFrame then _movie.go(_movie.frame) end if end on mouseUp me if pClickToSkip then me.finishFade() end
