|
Animation Sample - Source CodeFeaturing an Animation Style for VID |
|
REBOL [title: "Animation Sample" author: "Christopher Ross-Gill"]
;--- Load Images ---
site: http://www.ross-gill.com/r/anim/
do load-thru site/anim-style.r
img-t: load-image site/gradient-cyan.png
img-a: load-image site/rebol.png
;--- Browser Interaction ---
dom?: attempt [do-browser "true;"]
plugin-size: does [
any [dom? return 200x200]
as-pair do-browser "document.getElementById('tile-obj').offsetWidth;"
do-browser "document.getElementById('tile-obj').offsetHeight;"
]
page-margin: does [
any [dom? return 30x0]
as-pair do-browser "document.body.offsetLeft;"
do-browser "document.body.offsetTop;"
]
plugin-offset: does [
any [dom? return 30x30]
as-pair do-browser "document.getElementById('tile-obj').offsetLeft;"
do-browser "document.getElementById('tile-obj').offsetTop;"
]
if dom? [
do-browser rejoin [
"document.body.style.backgroundImage = "
"'url(" site "gradient-cyan.png)';"
]
do-browser {document.getElementsByTagName('h1')[0].style.color = '#c00';}
]
;--- Layout ---
x-layout: layout [
style my-anim animation 80x80 img-a
origin 15 btile: backtile img-t effect 'tile
pnl: panel 170x170 [
space 10
my-anim green anim-rate [#1 7 #4 2 #5 7]
my-anim blue rate 8 return
my-anim magenta rate 12
my-anim red anim-rate [#1 2 #2 7]
]
]
do resize: has [size][
x-layout/size: size: plugin-size
btile/size: size + plugin-offset + page-margin
btile/offset: 0x0 - plugin-offset - page-margin
pnl/offset/x: size/x - pnl/size/x / 2
show x-layout
]
insert-event-func [switch event/type [offset [resize] resize [resize]] event]
view x-layout
|