101
100
document.getElementById(slides[counter]["objectId"]).setAttribute("opacity",0);
103
var tempEffects = new Array();
104
for (var IOCounter = 0; IOCounter <= 1; IOCounter++)
111
propName = "effectIn";
114
else if (IOCounter == 1)
116
propName = "effectOut";
119
var effects = getElementsByProperty(document.getElementById(slides[counter]["objectId"]),propName);
120
for (var effectCounter = 0; effectCounter < effects.length; effectCounter++)
122
var dict = propStrToDict(document.getElementById(effects[effectCounter]).getAttribute(propName));
123
var effectDict = new Object();
124
effectDict["effect"] = dict["name"];
125
effectDict["dir"] = dir;
126
effectDict["objectId"] = effects[effectCounter];
127
for (var option in dict)
129
if ((option != "name") && (option != "order"))
131
if (!effectDict["options"])
132
effectDict["options"] = new Object();
134
effectDict["options"][option] = dict[option];
137
if (!tempEffects[dict["order"]])
138
tempEffects[dict["order"]] = new Array();
139
tempEffects[dict["order"]][tempEffects[dict["order"]].length] = effectDict;
142
if (tempEffects.length > 0)
144
slides[counter]["effects"] = new Array();
145
for (var effectCounter = 0; effectCounter < tempEffects.length; effectCounter++)
147
if (tempEffects[effectCounter])
148
slides[counter]["effects"][slides[counter]["effects"].length] = tempEffects[effectCounter];
104
152
var texts = document.getElementById(slides[counter]["objectId"]).getElementsByTagName("tspan");
106
154
for (var textCounter = 0; textCounter < texts.length; textCounter++)
111
159
texts[textCounter].firstChild.nodeValue = slides.length;
163
setSlideToState(0, STATE_START);
116
function getElementsByName(node, name)
166
function getElementsByProperty(node, name)
118
168
var elems = new Array();
120
if (node.getAttribute("inkscape:label") == name)
170
if (node.getAttribute(name))
121
171
elems.push(node.getAttribute("id"));
123
173
for (var counter = 0; counter < node.childNodes.length; counter++)
125
175
if (node.childNodes[counter].nodeType == 1)
126
elems = elems.concat(getElementsByName(node.childNodes[counter], name));
176
elems = elems.concat(getElementsByProperty(node.childNodes[counter], name));
159
225
effectArray[1]["effect"] = slides[activeSlide]["transitionIn"]["name"];
160
226
effectArray[1]["options"] = slides[activeSlide]["transitionIn"]["options"];
227
effectArray[1]["dir"] = 1;
162
229
else if (dir == -1)
164
231
effectArray[1]["effect"] = slides[activeSlide]["transitionOut"]["name"];
165
232
effectArray[1]["options"] = slides[activeSlide]["transitionOut"]["options"];
233
effectArray[1]["dir"] = -1;
167
effectArray[1]["dir"] = 1;
168
235
effectArray[1]["objectId"] = slides[activeSlide]["objectId"];
169
effectArray[1]["effectType"] = SLIDETRANS_EFFECT;
237
if (slides[activeSlide]["effects"] && (dir == -1))
238
activeEffect = slides[activeSlide]["effects"].length;
243
setSlideToState(activeSlide, STATE_END);
245
setSlideToState(activeSlide, STATE_START);
171
247
transCounter = 0;
210
288
for (var counter = 0; counter < effectArray.length; counter++)
212
290
if (effectArray[counter]["effect"] == "fade")
213
done &= fade(effectArray[counter]["dir"], effectArray[counter]["effectType"], effectArray[counter]["objectId"], transCounter, effectArray[counter]["options"]);
291
done &= fade(parseInt(effectArray[counter]["dir"]) * dir, effectArray[counter]["objectId"], transCounter, effectArray[counter]["options"]);
214
292
else if (effectArray[counter]["effect"] == "appear")
215
done &= appear(effectArray[counter]["dir"], effectArray[counter]["effectType"], effectArray[counter]["objectId"], transCounter, effectArray[counter]["options"]);
293
done &= appear(parseInt(effectArray[counter]["dir"]) * dir, effectArray[counter]["objectId"], transCounter, effectArray[counter]["options"]);
216
294
else if (effectArray[counter]["effect"] == "pop")
217
done &= pop(effectArray[counter]["dir"], effectArray[counter]["effectType"], effectArray[counter]["objectId"], transCounter, effectArray[counter]["options"]);
295
done &= pop(parseInt(effectArray[counter]["dir"]) * dir, effectArray[counter]["objectId"], transCounter, effectArray[counter]["options"]);
222
300
transCounter += timeStep;
225
transCounter += timeStep;
227
301
window.setTimeout("effect(" + dir + ")", timeStep);
329
404
document.onmousedown = mouseclick;
331
function fade(dir, effectType, objectId, time, options)
406
function fade(dir, objectId, time, options)
333
408
var length = 250;
335
if (options && options["length"])
336
length = options["length"];
338
var fraction = time / length;
411
if ((time == STATE_END) || (time == STATE_START))
415
if (options && options["length"])
416
length = options["length"];
418
fraction = time / length;
342
423
if (fraction <= 0)
425
document.getElementById(objectId).style.display = "none";
344
426
document.getElementById(objectId).setAttribute("opacity", 0);
345
if (effectType == SLIDETRANS_EFFECT)
346
document.getElementById(objectId).style.display = "inherit";
348
document.getElementById(objectId).setAttribute("visibility", "inherit");
350
428
else if (fraction >= 1)
430
document.getElementById(objectId).style.display = "inherit";
352
431
document.getElementById(objectId).setAttribute("opacity", 1);
436
document.getElementById(objectId).style.display = "inherit";
357
437
document.getElementById(objectId).setAttribute("opacity", fraction);
360
440
else if (dir == -1)
362
442
if (fraction <= 0)
444
document.getElementById(objectId).style.display = "inherit";
363
445
document.getElementById(objectId).setAttribute("opacity", 1);
364
447
else if (fraction >= 1)
366
449
document.getElementById(objectId).setAttribute("opacity", 0);
367
if (effectType == SLIDETRANS_EFFECT)
368
document.getElementById(objectId).style.display = "none";
370
document.getElementById(objectId).setAttribute("visibility", "hidden");
450
document.getElementById(objectId).style.display = "none";
455
document.getElementById(objectId).style.display = "inherit";
374
456
document.getElementById(objectId).setAttribute("opacity", 1 - fraction);
379
function appear(dir, effectType, objectId, time, options)
462
function appear(dir, objectId, time, options)
383
if (effectType == SLIDETRANS_EFFECT)
385
document.getElementById(objectId).style.display = "inherit";
386
document.getElementById(objectId).setAttribute("opacity",1);
389
document.getElementById(objectId).setAttribute("visibility","inherit");
466
document.getElementById(objectId).style.display = "inherit";
467
document.getElementById(objectId).setAttribute("opacity",1);
391
469
else if (dir == -1)
393
if (effectType == SLIDETRANS_EFFECT)
395
document.getElementById(objectId).style.display = "none";
396
document.getElementById(objectId).setAttribute("opacity",0);
399
document.getElementById(objectId).setAttribute("visibility","hidden");
471
document.getElementById(objectId).style.display = "none";
472
document.getElementById(objectId).setAttribute("opacity",0);
404
function pop(dir, effectType, objectId, time, options)
477
function pop(dir, objectId, time, options)
406
479
var length = 250;
408
if (options && options["length"])
409
length = options["length"];
411
var fraction = time / length;
482
if ((time == STATE_END) || (time == STATE_START))
486
if (options && options["length"])
487
length = options["length"];
489
fraction = time / length;
417
496
document.getElementById(objectId).setAttribute("opacity", 0);
418
497
document.getElementById(objectId).setAttribute("transform", "scale(0)");
419
if (effectType == SLIDETRANS_EFFECT)
420
document.getElementById(objectId).style.display = "inherit";
422
document.getElementById(objectId).setAttribute("visibility", "inherit");
498
document.getElementById(objectId).style.display = "none";
424
500
else if (fraction >= 1)
426
502
document.getElementById(objectId).setAttribute("opacity", 1);
427
503
document.getElementById(objectId).setAttribute("transform", "scale(1)");
504
document.getElementById(objectId).style.display = "inherit";
509
document.getElementById(objectId).style.display = "inherit";
432
510
document.getElementById(objectId).setAttribute("opacity", fraction);
433
511
if (fraction < 0.9)
434
512
document.getElementById(objectId).setAttribute("transform", "scale(" + fraction / 0.9 * 1.2 + ")");
443
521
document.getElementById(objectId).setAttribute("opacity", 1);
444
522
document.getElementById(objectId).setAttribute("transform", "scale(1)");
523
document.getElementById(objectId).style.display = "inherit";
446
525
else if (fraction >= 1)
448
527
document.getElementById(objectId).setAttribute("opacity", 0);
449
//document.getElementById(objectId).setAttribute("transform", "scale(0)");
450
if (effectType == SLIDETRANS_EFFECT)
451
document.getElementById(objectId).style.display = "none";
453
document.getElementById(objectId).setAttribute("visibility", "hidden");
528
document.getElementById(objectId).setAttribute("transform", "scale(0)");
529
document.getElementById(objectId).style.display = "none";
458
534
document.getElementById(objectId).setAttribute("opacity", 1 - fraction);
459
535
document.getElementById(objectId).setAttribute("transform", "scale(" + 1 - fraction + ")");
536
document.getElementById(objectId).style.display = "inherit";
542
function setSlideToState(slide, state)
544
if (slides[slide]["effects"])
546
if (state == STATE_END)
548
for (var counter = 0; counter < slides[slide]["effects"].length; counter++)
550
for (var subCounter = 0; subCounter < slides[slide]["effects"][counter].length; subCounter++)
552
var effect = slides[slide]["effects"][counter][subCounter];
553
if (effect["effect"] == "fade")
554
fade(effect["dir"], effect["objectId"], STATE_END, effect["options"]);
555
else if (effect["effect"] == "appear")
556
appear(effect["dir"], effect["objectId"], STATE_END, effect["options"]);
557
else if (effect["effect"] == "pop")
558
pop(effect["dir"], effect["objectId"], STATE_END, effect["options"]);
562
else if (state == STATE_START)
564
for (var counter = slides[slide]["effects"].length - 1; counter >= 0; counter--)
566
for (var subCounter = 0; subCounter < slides[slide]["effects"][counter].length; subCounter++)
568
var effect = slides[slide]["effects"][counter][subCounter];
569
if (effect["effect"] == "fade")
570
fade(parseInt(effect["dir"]) * -1, effect["objectId"], STATE_START, effect["options"]);
571
else if (effect["effect"] == "appear")
572
appear(parseInt(effect["dir"]) * -1, effect["objectId"], STATE_START, effect["options"]);
573
else if (effect["effect"] == "pop")
574
pop(parseInt(effect["dir"]) * -1, effect["objectId"], STATE_START, effect["options"]);
465
581
function propStrToDict(str)
467
583
var list = str.split(";");