|
Splash Banner - Source CodeAnimated banner ad example. |
|
REBOL [Title: "REBOL/View 1.2 Splash" Version: 1.0.1] wh: 7x10 win-size: logo.gif/size + 4x4 * wh l: center-face layout [ size win-size backcolor white at win-size - logo.gif/size / 2 - 0x40 l1: image logo.gif pad logo.gif/size/x / 2 - 150 * 1x0 space 0x6 t1: h2 300 center "Lightweight Distributed Computing" b1: box 300x2 maroon t3: h3 300 center "From REBOL Technologies" t4: h3 300 center "WWW.REBOL.COM" [browse http://www.rebol.com] ] clear find l/pane b1 make-logo: has [f] [ f: make face [ clr: random white size: logo.gif/size + 4x4 offset: (random wh) - 1x1 * size image: logo.gif effect: reduce ['colorize clr] edge: make edge [color: clr] font: para: none ] ] l2: l1/offset/y t2: t1/offset/y l1/offset/y: t1/offset/y: win-size/y actions: [ [ ; fly on if all [frame > 6 l1/offset/y > l2] [l1/offset/y: max l2 l1/offset/y - 16] if all [frame > 16 t1/offset/y > t2] [t1/offset/y: max t2 t1/offset/y - 16] t1/offset/y > t2 ] [frame < 10] [ ; accelerated splatter loop frame [append l/pane make-logo] frame < 28 ] [ ; setup for wipe l/image: to-image l clear l/pane recycle l/effect: [grayscale] show l ; <-- Bug: This extra show is required, or to-image does work. img: to-image l l/effect: none append l/pane f: make face [ size: win-size * 0x1 image: img edge: font: para: none ] false ][ ; wipe to grayscale (f/size/x: frame * 50) < win-size/x ][ ; setup for wipe f/size: 0x0 l/image: img l/effect: [emboss] show l ; <-- Bug! f/image: to-image l l/effect: none f/size: win-size * 1x0 false ][ ; wipe to emboss (f/size/y: frame * 16) < win-size/y ][ ; setup for fade f/size: 0x0 l/image: f/image l1/offset/y: t1/offset/y: win-size/y repend clear l/pane [l1 t1] false ][ ; fade to white, fly on again l/effect: reduce ['luma frame * 8] either l1/offset/y > l2 [l1/offset/y: max l2 l1/offset/y - 10][ if t1/offset/y > t2 [t1/offset/y: max t2 t1/offset/y - 10] ] t1/offset/y > t2 ][ ; fade in rest repend l/pane [b1 t3 t4] b1/color: t3/font/color: t4/font/color: white false ][ b1/color: b1/color - 4.16.16 if frame > 6 [ t3/font/color: t3/font/color - 16 ] if frame > 12 [ t4/font/color: t4/font/color - 16 ] t4/font/color <> 0.0.0 ][ frame < 60 ] ] view/new l l/rate: 30 frame: 1 l/feel: make l/feel [ detect: func [face evt] [ if find [close down key] evt/type [quit] if evt/type = 'time [ evt: do first actions frame: frame + 1 show face if not evt [ actions: next actions frame: 1 if tail? actions [quit] ] ] ] ] recycle show l do-events |