19. september 2000 - 18:42
#3
animate.js
-------------------
<!--
// See KB article about changing this dynamic HTML
dynamicanimAttr = \"dynamicanimation\"
animCancel = \"skipanim\"
fpanimationPrefix = \"fpAnim\"
animateElements = new Array()
currentElement = 0
speed = 1
stepsZoom = 8
stepsWord = 8
stepsFly = 17
stepsSpiral = 16
stepsSpiralWord = 19
stepsElastic = 32
steps = stepsZoom
step = 0
cornerPhase=0
outEffect=0
function remSuffix(str)
{
ind=str.indexOf(\"FP\")
str = str.substring(0,ind)
return str
}
function dynAnimOut(el)
{
outEffect=1
dynAnimation(el)
outEffect=0
}
function dynAnimation(obj)
{
animateElements = new Array()
var ms = navigator.appVersion.indexOf(\"MSIE\")
ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
if(!ie4)
{
if((navigator.appName == \"Netscape\") &&
(parseInt(navigator.appVersion.substring(0, 1)) >= 4))
doc_els=document.layers
else
return
}
else
doc_els=document.all
if(outEffect && !ie4)
return
if(ie4)
{
for (index=document.all.length-1; index >= document.body.sourceIndex; index--)
{
el = document.all[index]
if(outEffect && el != obj)
continue
if(outEffect)
animationId = el.id.substring(9,el.id.length)
else
animationId = el.id.substring(6,el.id.length)
animation=remSuffix(animationId)
if(null != animation)
{
altcnt=0
if( animation == \"dropWord\" ||
animation == \"flyTopRightWord\" ||
animation == \"flyBottomRightWord\" ||
animation == \"waveWords\" ||
animation == \"hopWords\")
{
ih = el.innerHTML
outString = \"\"
i1 = 0
iend = ih.length
while(true)
{
i2 = startWord(ih, i1)
if(i2 == -1)
i2 = iend
outWord(ih, i1, i2, false, \"\", outEffect ? obj.id : el.id)
if(i2 == iend)
break
i1 = i2
i2 = endWord(ih, i1)
if(i2 == -1)
i2 = iend
if (animation == \"waveWords\")
outWordAlt(ih, i1, i2, true, animation, altcnt)
else
outWord(ih, i1, i2, true, (outEffect ? \"Out\" : \"\") + animation,
outEffect ? obj.id : el.id)
if(i2 == iend)
break
i1 = i2
altcnt++
}
document.all[index].innerHTML = outString
document.all[index].style.posLeft = 0
document.all[index].setAttribute(animCancel, true)
document.all[index].style.visibility=\"visible\"
}
}
}
}
i = 0
for (index=0; index < doc_els.length; index++)
{
el = doc_els[index]
if(0 != el.id.indexOf(fpanimationPrefix))
continue
if (ie4)
{
elprops=el.style
scrollOffsetTop=document.body.scrollTop
docHeight=document.body.offsetHeight
docWidth=document.body.offsetWidth
elW=100
elH=el.offsetHeight
}
else
{
elprops=el
scrollOffsetTop=window.pageYOffset
docHeight=window.innerHeight
docWidth=window.innerWidth
elW=el.clip.width
elH=el.clip.height
}
if(outEffect)
animationId = el.id.substring(9,el.id.length)
else
animationId = el.id.substring(6,el.id.length)
animation=remSuffix(animationId)
if(outEffect && (obj != el))
{
if(el.SRCID != obj.id)
continue
}
if (null != animation )
{
if(ie4 && null!=el.getAttribute(animCancel, false))
continue
if(!ie4)
{
elprops.posLeft=elprops.left
elprops.posTop=elprops.top
}
el.startL=offsetLeft(el)
if(animation == \"flyLeft\")
{
elprops.posLeft = -offsetLeft(el)-elW
elprops.posTop = 0
}
else if(animation == \"flyRight\" || animation==\"elasticRight\")
{
elprops.posLeft = -offsetLeft(el)+docWidth
elprops.posTop = 0
}
else if(animation == \"flyTop\" || animation == \"dropWord\")
{
elprops.posLeft = 0
elprops.posTop = scrollOffsetTop-offsetTop(el)-elH
}
else if(animation == \"flyBottom\" || animation == \"elasticBottom\")
{
elprops.posLeft = 0
elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
}
else if(animation == \"flyTopLeft\")
{
elprops.posLeft = -offsetLeft(el)-elW
elprops.posTop = scrollOffsetTop-offsetTop(el)-elH
}
else if(animation == \"flyTopRight\" || animation == \"flyTopRightWord\")
{
elprops.posLeft = -offsetLeft(el)+docWidth
elprops.posTop = scrollOffsetTop-offsetTop(el)-elH
}
else if(animation == \"flyCorner\")
{
elprops.posLeft = docWidth*0.2-offsetLeft(el)
elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
}
else if(animation == \"flyBottomLeft\")
{
elprops.posLeft = -offsetLeft(el)-elW
elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
}
else if(animation == \"flyBottomRight\" || animation == \"flyBottomRightWord\")
{
elprops.posLeft = -offsetLeft(el)+docWidth
elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
}
else if(animation == \"spiral\")
{
elprops.posLeft = -offsetLeft(el)+docWidth
elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
}
else if((animation.indexOf(\"waveWords\") != -1) || animation==\"hopWords\")
{
if(i)
{
prevEl=animateElements[i-1]
elprops.r = offsetLeft(el)-prevEl.startL
}
else
elprops.r = offsetLeft(el)
}
else if(animation == \"wipeLR\" || animation == \"wipeMID\")
{
if (ie4 && elprops.position==\"absolute\")
{
el.sizeW=el.offsetWidth
elprops.clip=\"rect(0 0 0 0)\"
}
else if (!ie4)
{
el.sizeW=el.clip.width
el.clip.width=0
}
}
else if(animation == \"wipeTB\")
{
if (ie4 && elprops.position==\"absolute\")
{
elprops.clip=\"rect(0 0 0 0)\"
}
else if(!ie4)
{
el.sizeH=el.clip.height
el.clip.height=0
}
}
else if(animation == \"zoomIn\")
{
elprops.posLeft = 0
elprops.posTop = 0
}
else if(animation == \"zoomOut\")
{
elprops.posLeft = 0
elprops.posTop = 0
}
else
{
continue
}
if(!outEffect)
{
el.initLeft = elprops.posLeft
el.initTop = elprops.posTop
el.endLeft = 0
el.endTop = 0
elprops.visibility = \"hidden\"
}
else
{
el.initLeft = 0
el.initTop = 0
el.endLeft = elprops.posLeft
el.endTop = elprops.posTop
elprops.posTop = 0
elprops.posLeft = 0
}
if(!ie4)
{
elprops.left=elprops.initLeft
elprops.top =elprops.initTop
}
animateElements[i++] = el
}
}
if(animateElements.length > 0)
{
if(outEffect)
window.setTimeout(\"animate(1);\", speed, \"Javascript\")
else
window.setTimeout(\"animate(0);\", speed, \"Javascript\")
}
}
function offsetLeft(el)
{
if(ie4)
{
x = el.offsetLeft
for (e = el.offsetParent; e; e = e.offsetParent)
x += e.offsetLeft
return x
}
else
{
x = el.pageX
return x
}
}
function offsetTop(el)
{
if(ie4)
{
y = el.offsetTop
for (e = el.offsetParent; e; e = e.offsetParent)
y += e.offsetTop;
return y
}
else
{
y = el.pageY
return y
}
}
function startWord(ih, i)
{
for(tag = false; i < ih.length; i++)
{
c = ih.charAt(i)
if(c == \'<\')
{
if(ih.substring(i+1, i+4) == \"IMG\")
return i;
tag = true
}
if(!tag)
return i
if(c == \'>\')
tag = false
}
return -1
}
function endWord(ih, i)
{
nonSpace = false
space = false
img = false
if(ih.charAt(i) == \'<\')
{
img = true
i++;
}
while(i < ih.length)
{
c = ih.charAt(i)
if(c != \' \')
nonSpace = true
if(img && c == \'>\')
img = false;
if(nonSpace && !img && c == \' \')
space = true
if(c == \'<\')
return i
if(space && c != \' \')
return i
i++
}
return -1
}
function outWord(ih, i1, i2, dyn, anim, srcID)
{
if(dyn)
if(!outEffect)
outString += \"<SPAN ID=\\\"\" + fpanimationPrefix + anim + \"FP\\\" style=\\\"position: relative; visibility: hidden;\\\">\"
else
outString += \"<SPAN SRCID=\\\"\" + srcID + \"\\\"ID=\\\"\" + fpanimationPrefix + anim + \"FP\\\" style=\\\"position: relative;\\\">\"
outString += ih.substring(i1, i2)
if(dyn)
outString += \"</SPAN>\"
}
function outWordAlt(ih, i1, i2, dyn, anim, altcnt)
{
if(dyn)
{
if(altcnt%2)
outString += \"<SPAN ID=\\\"\" + fpanimationPrefix + anim + \"LFP\\\" style=\\\"position: relative; visibility: hidden;\\\">\"
else
outString += \"<SPAN ID=\\\"\" + fpanimationPrefix + anim + \"RFP\\\" style=\\\"position: relative; visibility: hidden;\\\">\"
}
outString += ih.substring(i1, i2)
if(dyn)
outString += \"</SPAN>\"
}
function animate(animOut)
{
el = animateElements[currentElement]
if(animOut)
animationId = el.id.substring(9,el.id.length);
else
animationId = el.id.substring(6,el.id.length);
animation=remSuffix(animationId)
if (ie4)
elprops=el.style
else
elprops=el
if(!step && !animOut)
elprops.visibility=\"visible\"
step++
if(animation == \"spiral\")
{
steps = stepsSpiral
v = step/steps
rf = 1.0 - v
t = v * 2.0*Math.PI
rx = Math.max(Math.abs(el.initLeft), 200)
ry = Math.max(Math.abs(el.initTop), 200)
elprops.posLeft = Math.ceil(-rf*Math.cos(t)*rx)
elprops.posTop = Math.ceil(-rf*Math.sin(t)*ry)
}
else if(animation == \"waveWordsL\" || animation==\"hopWords\" || animation == \"waveWords\")
{
steps = stepsSpiralWord
v = step/steps
rf = (1.0 - v)
t = v * 1.0*Math.PI
elprops.posLeft = Math.ceil(-rf*Math.cos(t)*elprops.r)
elprops.posTop = Math.ceil(-rf*Math.sin(t)*elprops.r)
}
else if(animation == \"waveWordsR\")
{
steps = stepsSpiralWord
v = step/steps
rf = (1.0 - v)
t = v * 1.0*Math.PI
elprops.posLeft = Math.ceil(-rf*Math.cos(t)*elprops.r)
elprops.posTop = Math.ceil( rf*Math.sin(t)*elprops.r)
}
else if(animation == \"zoomIn\")
{
steps = stepsZoom
elprops.fontSize = Math.ceil(50+50*step/steps) + \"%\"
elprops.posLeft = 0
}
else if(animation == \"zoomOut\")
{
steps = stepsZoom
fontSz=Math.ceil(100+200*(steps-step)/steps) + \"%\"
elprops.fontSize = fontSz
elprops.posLeft = 0
}
else if(animation == \"elasticRight\")
{
steps = stepsElastic
v = step/steps
rf=Math.exp(-v*7)
t = v * 1.5*Math.PI
rx =Math.abs(el.initLeft)
elprops.posLeft = rf*Math.cos(t)*rx
elprops.posTop = 0
}
else if(animation == \"elasticBottom\")
{
steps = stepsElastic
v = step/steps
rf=Math.exp(-v*7)
t = v * 2.5*Math.PI
ry =Math.abs(el.initTop)
elprops.posLeft = 0
elprops.posTop = rf*Math.cos(t)*ry
}
else if(animation == \"wipeLR\")
{
steps = stepsElastic
if(ie4 && elprops.position==\"absolute\")
elprops.clip = \"rect(0 \"+ step/steps*100 +\"% 100% 0)\"
else if (!ie4)
{
elprops.clip.right=step/steps*el.sizeW
}
}
else if(animation == \"wipeTB\")
{
steps = stepsElastic
if(ie4 && elprops.position==\"absolute\")
elprops.clip = \"rect(0 100% \"+step/steps*el.offsetHeight+\"px 0)\"
else
elprops.clip.bottom=step/steps*el.sizeH
}
else if(animation == \"wipeMID\")
{
steps = stepsElastic
if(ie4 && elprops.position==\"absolute\")
{
elprops.clip = \"rect(0 \"+el.sizeW/2*(1+step/steps)+\"px 100% \"+el.sizeW/2*(1-step/steps)+\")\"
}
else if(!ie4)
{
elprops.clip.right=el.sizeW/2*(1+step/steps)
elprops.clip.left=el.sizeW/2*(1-step/steps)
}
}
else if(animation == \"flyCorner\")
{
if(!cornerPhase)
{
steps = stepsElastic/2
v = step/steps
rf=Math.exp(-v*7)
t = v * 2.5*Math.PI
ry =Math.abs(el.initTop)
elprops.posTop = rf*Math.cos(t)*ry
}
else
{
steps = stepsFly
dl = el.initLeft / steps
elprops.posLeft = elprops.posLeft - dl
elprops.posTop = 0
}
}
else
{
steps = stepsFly
if(animation == \"dropWord\" || animation == \"flyTopRightWord\" || animation == \"flyBottomRightWord\")
steps = stepsWord
dl = (el.endLeft - el.initLeft) / steps
dt = (el.endTop - el.initTop) / steps
elprops.posLeft = elprops.posLeft + dl
elprops.posTop = elprops.posTop + dt
}
if (step >= steps)
{
if(!(animation == \"wipeLR\" ||
animation == \"wipeTB\" ||
animation == \"wipeMID\" ||
(animation == \"flyCorner\" && !cornerPhase)))
{
elprops.posLeft = el.endLeft
elprops.posTop = el.endTop
}
if(animOut)
{
elprops.visibility=\"hidden\"
}
step = 0
if(animation==\"flyCorner\" && !cornerPhase)
cornerPhase=1
else
{
cornerPhase=0
currentElement++
}
}
if(!ie4)
{
elprops.left=elprops.posLeft
elprops.top =elprops.posTop
}
if(currentElement < animateElements.length)
{
if(animOut)
window.setTimeout(\"animate(1);\", speed, \"Javascript\")
else
window.setTimeout(\"animate(0);\", speed, \"Javascript\")
}
else
currentElement=0
}
function rollIn(el)
{
var ms = navigator.appVersion.indexOf(\"MSIE\")
ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
if(ie4)
{
el.initstyle=el.style.cssText;el.style.cssText=el.fprolloverstyle
}
}
function rollOut(el)
{
var ms = navigator.appVersion.indexOf(\"MSIE\")
ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
if(ie4)
{
el.style.cssText=el.initstyle
}
}
function clickSwapStyle(el)
{
var ms = navigator.appVersion.indexOf(\"MSIE\")
ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
if(ie4)
{
ts=el.style.cssText
el.style.cssText=el.fprolloverstyle
el.fprolloverstyle=ts
}
}
function clickSwapImg(el)
{
if(document.all || document.layers)
{
ts=el.src
el.src=el.lowsrc
el.lowsrc=ts
}
}
//-->
20. september 2000 - 01:27
#4
Et andet bud.....på flyvende text
**********************
<html>
<head>
<title>Flyvende text</title>
<style media=\"screen\" type=\"text/css\"><!--
#FlyvendeLag{position:absolute;top:-50px;left:150px;width:203px;height:61px;visibility:visible}
--></style>
<cssequencer default=\"0\">
<cssequence name=\"Scene 1\" fps=\"15\" start=\"0\" end=\"39\" autoplay=\"on\">
<cstrack layer=\"FlyvendeLag\" parts=\"0,150,-50,,1,2,#ccccff,38,150,150,,1,2,#ccccff\"></cstrack>
</cssequence>
</cssequencer>
<csscriptdict>
<script><!--
CSInit = new Array;
function CSScriptInit() {
if(typeof(skipPage) != \"undefined\") { if(skipPage) return; }
idxArray = new Array;
for(var i=0;i<CSInit.length;i++)
idxArray[i] = i;
CSAction2(CSInit, idxArray);}
CSAg = window.navigator.userAgent; CSBVers = parseInt(CSAg.charAt(CSAg.indexOf(\"/\")+1),10);
function IsIE() { return CSAg.indexOf(\"MSIE\") > 0;}
function CSIEStyl(s) { return document.all.tags(\"div\")[s].style; }
function CSNSStyl(s) { return CSFindElement(s,0); }
function CSFindElement(n,ly) { if (CSBVers < 4) return document[n];
var curDoc = ly ? ly.document : document; var elem = curDoc[n];
if (!elem) { for (var i=0;i<curDoc.layers.length;i++) {
elem = CSFindElement(n,curDoc.layers[i]); if (elem) return elem; }}
return elem;
}
CSLoopIsRunning = false; CSFctArray = new Array; CSTimeoutID = null;
function CSLoop() {
CSLoopIsRunning = false;
for (i=0;i<CSFctArray.length;i++) {
var curFct = CSFctArray[i];
if (curFct) {
if (curFct.DoFunction(curFct)) { CSLoopIsRunning = true; curFct.counter++; }
else CSFctArray[i] = 0;
}
}
if (CSLoopIsRunning) CSTimeoutID = setTimeout(\"CSLoop()\", 1);
}
function CSStartFunction(fct,data) {
if (!CSLoopIsRunning) { CSFctArray = 0; CSFctArray = new Array; }
var fctInfo = new Object;
fctInfo.DoFunction = fct; fctInfo.counter = 0; fctInfo.data = data;
CSFctArray[CSFctArray.length] = fctInfo;
if (!CSLoopIsRunning) CSLoop();
}
function CSStopFunction(sceneName) {
var i;
for (i=0;i<CSFctArray.length;i++) {
var curFct = CSFctArray[i];
if (curFct){ if (curFct.data.name == sceneName){ CSFctArray[i] = 0; return; } }
}
}
function CSStopComplete() {
if (CSTimeoutID == null) return;
clearTimeout (CSTimeoutID); CSLoopIsRunning = false; CSTimeoutID = null;
}
function CSSetStylePos(s,d,p) { if (IsIE()) { if (d == 0) CSIEStyl(s).posLeft = p; else CSIEStyl(s).posTop = p; }
else { if (d == 0) CSNSStyl(s).left = p; else CSNSStyl(s).top = p; } }
function CSGetStylePos(s,d) { if (IsIE()) { if (d == 0) return CSIEStyl(s).posLeft; else return CSIEStyl(s).posTop; }
else { if (d == 0) return CSNSStyl(s).left; else return CSNSStyl(s).top; }}
function CSSetStyleVis(s,v) { if (IsIE()) CSIEStyl(s).visibility = (v == 0) ? \"hidden\" : \"visible\";
else CSNSStyl(s).visibility = (v == 0) ? \'hide\' : \'show\'; }
function CSGetStyleVis(s) { if (IsIE()) return (CSIEStyl(s).visibility == \"hidden\") ? 0 : 1;
else return (CSNSStyl(s).visibility == \'hide\') ? 0 : 1;}
function CSSetStyleDepth(style,depth) { if (IsIE()) CSIEStyl(style).zIndex = depth; else CSNSStyl(style).zIndex = depth;}
function CSGetStyleDepth(style) { if (IsIE()) return (CSIEStyl(style).zIndex); else return (CSNSStyl(style).zIndex); }
CSSeqArray = new Array;
function CSSeqActionFct(seq,loopCount,continueLoop) {
if ((seq.loop < 2) || ((loopCount % 2) != 0)) {
for (var i=0;i<seq.actionCount;i++) {
if (seq.actions[3*i + 1] <= seq.frame) {
if ((loopCount > 1) && (seq.actions[3*i + 1] < seq.start)) continue;
if (seq.actions[3*i + 2] < loopCount) {
seq.actions[3*i + 2] = loopCount; CSLoopIsRunning = true;
CSAction(new Array(seq.actions[3*i + 0])); continueLoop = true;
}
} else { continueLoop = true; break; }
}
} else {
for (var i=seq.actionCount-1;i>=0;i--) {
if (seq.actions[3*i + 1] > seq.frame) {
if (seq.actions[3*i + 1] > seq.end) continue;
if (seq.actions[3*i + 2] < loopCount) {
seq.actions[3*i + 2] = loopCount; CSLoopIsRunning = true;
CSAction(new Array(seq.actions[3*i + 0])); continueLoop = true;
}
} else { continueLoop = true; break; }
}
}
return continueLoop;
}
function CSSeqFunction(fctInfo)
{
var seq = fctInfo.data; var oldFrame = seq.frame;
var newTicks = (new Date()).getTime();
seq.frame = Math.round((seq.fps * (newTicks - seq.startTicks)/1000.0) - 0.5);
var continueLoop = false; var loopCount = 1;
if (seq.loop > 0) {
continueLoop = true;
if (seq.loop == 1) {
var iv = (seq.end - seq.start);
var f = Math.round(((seq.frame - seq.start) / iv) - 0.5);
if (f < 0) f = 0;
loopCount = f+1;
seq.frame = seq.start + ((seq.frame - seq.start) % (seq.end - seq.start));
} else {
var iv = (seq.end - seq.start);
var f = Math.round(((seq.frame - seq.start) / iv) - 0.5);
if (f < 0) f = 0;
loopCount = f+1;
f = (seq.frame - seq.start) % (2 * iv);
if (f > iv) f = 2*iv - f;
seq.frame = seq.start + f;
}
}
continueLoop = CSSeqActionFct(seq,loopCount,continueLoop);
for (var i=0;i<seq.tracks.length;i++) {
var track = seq.tracks[i]; var frameCount = 0; var lastCount = 0; var partCount = 0;
var partIdx = track.parts.ticks.length;
for (var k=0;k<track.parts.ticks.length;k++) {
frameCount += track.parts.ticks[k];
if (frameCount > seq.frame) { partIdx = k; partCount = seq.frame - lastCount; break; }
lastCount = frameCount;
}
if (partIdx < track.parts.ticks.length) {
var type=track.parts.moveType[partIdx];
if(type==1) CSSetLinearPos (track, partIdx, partCount);
else if(type==2) CSSetCurvePos (track, partIdx, partCount);
else if(type==3) if (oldFrame != seq.frame) CSSetRandomPos (track, partIdx, partCount);
else { x = CSGetStylePos(track.layer,0); y = CSGetStylePos(track.layer,1); }
CSSetStyleVis(track.layer,track.parts.visibilities[partIdx]);
CSSetStyleDepth(track.layer,track.parts.depths[partIdx]);
continueLoop = true;
} else {
var partIdx = track.parts.moveType.length-1;
var posArray = track.parts.positions;
var x = posArray[partIdx * 6 + 0]; var y = posArray[partIdx * 6 + 1];
CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);
CSSetStyleVis(track.layer,track.parts.visibilities[partIdx]);
CSSetStyleDepth(track.layer,track.parts.depths[partIdx]);
}
}
return continueLoop;
}
function CSSetLinearPos (track, partIdx, partCount) {
var curTicks = track.parts.ticks[partIdx];
var pIdx1 = partIdx * 6; var pIdx2 = (partIdx+1) * 6;
var posArray = track.parts.positions;
var x = posArray[pIdx1 + 0]; var y = posArray[pIdx1 + 1];
var x1,x2,y1,y2;
var factor = partCount/curTicks;
x1 = x; y1 = y;
x2 = posArray[pIdx2 + 0]; y2 = posArray[pIdx2 + 1];
x = x1 * (1-factor) + x2 * factor; y = y1 * (1-factor) + y2 * factor;
CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);
}
function CSSetCurvePos (track, partIdx, partCount) {
var curTicks = track.parts.ticks[partIdx];
var pIdx1 = partIdx * 6; var pIdx2 = (partIdx+1) * 6;
var posArray = track.parts.positions;
var x = posArray[pIdx1 + 0]; var y = posArray[pIdx1 + 1];
var x1,x2,x3,x4,y1,y2,y3,y4;
var factor = partCount/curTicks;
var t = factor; var u = t * t; var v = u * t;
var val1 = 3*(u-t) - v + 1; var val2 = 3*(v+t - 2*u); var val3 = 3*(u-v); var val4 = v;
x1 = x; y1 = y; x2 = posArray[pIdx1 + 2]; y2 = posArray[pIdx1 + 3];
x3 = posArray[pIdx1 + 4]; y3 = posArray[pIdx1 + 5];
x4 = posArray[pIdx2 + 0]; y4 = posArray[pIdx2 + 1];
x = x1 * val1 + x2 * val2 + x3 * val3 + x4 * val4;
y = y1 * val1 + y2 * val2 + y3 * val3 + y4 * val4;
CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);
}
function CSSetRandomPos (track, partIdx, partCount) {
var curTicks = track.parts.ticks[partIdx];
var pIdx1 = partIdx * 6; var pIdx2 = (partIdx+1) * 6;
var posArray = track.parts.positions;
var x = posArray[pIdx1 + 0]; var y = posArray[pIdx1 + 1];
var x1,x2,y1,y2;
var factor = partCount/curTicks;
x1 = x; y1 = y;
x2 = posArray[pIdx2 + 0]; y2 = posArray[pIdx2 + 1];
var factorx = Math.random(); var factory = Math.random();
x = x1 * (1-factorx) + x2 * factorx; y = y1 * (1-factory) + y2 * factory;
CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);
}
function CSStartSeq(name) {
var seq = CSGetScene(name); var date = new Date()
seq.startTicks = date.getTime()
for (var i=0;i<seq.actionCount;i++) seq.actions[3*i+2] = 0;
CSStartFunction(CSSeqFunction,seq);
}
function CSSceneObj (name,fps,loop,start,end,frame,sTicks,numAct,acts,tracks) {
this.name=name;this.fps=fps;this.loop=loop;this.start=start;this.end=end;
this.frame=frame;this.startTicks=sTicks;this.actionCount=numAct;
this.actions=acts;this.tracks=tracks;
}
function CSTrackObj (name,partIdx,partCount,parts) {
this.layer=name;this.partIdx=partIdx;this.partCount=partCount;this.parts=parts;
}
function CSPartObj (ticks,pos,depths,vis,moveType) {
this.ticks=ticks;this.positions=pos;this.depths=depths;this.visibilities=vis;
this.moveType=moveType;
}
function CSGetScene (name) {
for (i=0;i<CSSeqArray.length;i++) { var seq = CSSeqArray[i]; if (seq.name==name) return seq; }
return 0;
}
function CSAutoStartScene(action) { CSStartSeq (action[1]); }
CSStopExecution = false;
function CSAction(array) {
return CSAction2(CSAct, array);
}
function CSAction2(fct, array) {
var result;
for (var i=0;i<array.length;i++) {
if(CSStopExecution) return false;
var actArray = fct[array[i]];
if(actArray == null) return false;
var tempArray = new Array;
for(var j=1;j<actArray.length;j++) {
if((actArray[j] != null) && (typeof(actArray[j]) == \"object\") && (actArray[j].length == 2)) {
if(actArray[j][0] == \"VAR\") {
tempArray[j] = CSStateArray[actArray[j][1]];
}
else {
if(actArray[j][0] == \"ACT\") {
tempArray[j] = CSAction(new Array(new String(actArray[j][1])));
}
else
tempArray[j] = actArray[j];
}
}
else
tempArray[j] = actArray[j];
}
result = actArray[0](tempArray);
}
return result;
}
CSAct = new Object;
// --></script>
</csscriptdict>
<csactiondict>
<script><!--
CSSeqArray[CSSeqArray.length] = new CSSceneObj(/*CMP*/\"Scene 1\",15,0,0,39,0,0,0,new Array(),new Array(new CSTrackObj(/*CMP*/\"FlyvendeLag\",0,0,new CSPartObj(new Array(38,0),new Array(150,-50,150,16,150,83,150,150,0,0,0,0),new Array(0,0),new Array(1,1),new Array(2,2)))));
CSInit[CSInit.length] = new Array(CSAutoStartScene,/*CMP*/\'Scene 1\');
// --></script>
</csactiondict>
</head>
<body bgcolor=\"#ffffff\" leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\" onload=\"CSScriptInit();\">
<div id=\"FlyvendeLag\">
<h1>Flyvende tekst</h1>
</div>
</body>
</html>